0

I have the following sql code:

$statement = "`maildb`";

$query = "SELECT COUNT(*) as `num` FROM {$statement}";
$row = mysql_fetch_array(mysql_query($query));

I am trying to transform to PDO... I have tried the following:

$statement = "`maildb`";

$query = $db->prepare("SELECT COUNT(*) as `num` FROM {$statement}"); 
$query->execute();
$row = $query->fetchAll(PDO::FETCH_ASSOC);

That results in: Fatal error: Call to a member function prepare() on a non-object in function.php on line 8.

I have also tried this before, which should do the same:

$query = $db->prepare("SELECT * FROM maildb"); 
$query->execute();
$row = $query->fetchAll(PDO::FETCH_ASSOC);

$num = count($row);

Any help?

Thank you!!

4

3 に答える 3

0

$dbをインスタンス化しなかった可能性があります。したがって、これはオブジェクトではないため、そこから関数を呼び出すことはできません。

于 2012-09-01T17:35:12.843 に答える
0

初期化されていない$dbを使用しています。最初にを実行して初期化してください$db = new PDO( <connection details here> )。詳細については、PHP.netのPDOマニュアルを参照してください。

于 2012-09-01T17:35:14.637 に答える
0

I think the error lies in this line:

$query = $db->prepare("SELECT COUNT(*) as `num` FROM {$statement}"); 

Instead try using:

$query = $db->prepare("SELECT COUNT(*) as `num` FROM ?");
$query->execute($statement);
于 2012-09-01T17:55:08.003 に答える