0

我有以下sql代码:

$statement = "`maildb`";

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

我正在尝试转换为 PDO ...我尝试了以下方法:

$statement = "`maildb`";

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

这导致:致命错误:在第 8 行的 function.php 中对非对象调用成员函数 prepare()。

我以前也试过这个,应该做同样的事情:

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

$num = count($row);

有什么帮助吗?

谢谢!!

4

3 回答 3

0

我认为错误在于这一行:

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

而是尝试使用:

$query = $db->prepare("SELECT COUNT(*) as `num` FROM ?");
$query->execute($statement);
于 2012-09-01T17:55:08.003 回答
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 回答