Php 使用pdo获取简单行计数时出错

Php 使用pdo获取简单行计数时出错,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,只需使用pdo进行简单的行计数,并获得“对非对象调用成员函数query()”错误。我是PDO新手,但这应该很好用。。。不搜索显示使用相同的方法作为正确的方法。也许我就是那么累 会话变量有效 function get_computer_count(){ $sql = "SELECT COUNT(*) FROM computers WHERE account_id == '".$_SESSION['account']['account_id']."'"; $results = $db->

只需使用pdo进行简单的行计数,并获得“对非对象调用成员函数query()”错误。我是PDO新手,但这应该很好用。。。不搜索显示使用相同的方法作为正确的方法。也许我就是那么累

会话变量有效

function get_computer_count(){
  $sql = "SELECT COUNT(*) FROM computers WHERE account_id == '".$_SESSION['account']['account_id']."'";
  $results = $db->query($sql);
  $row = $results->fetch(PDO::FETCH_NUM);
  return $row[0];
}
有两个错误

对非对象调用成员函数query()

首先,您没有构造PDO对象

比如:

其次,您最有可能从查询中收到错误。MySQL中的相等性比较不是
=
,而是
=

试试这个:

SELECT COUNT(*) FROM computers WHERE account_id = '".$_SESSION['account']['account_id']."'

另一方面,如果
account\u id
不是字符字段,我建议不要添加撇号。

不,PDO对象不在其中。哎呀,你似乎是对的。无论如何,一旦纠正了错误,MySQL也会抱怨
=
:)正确添加变量并使用正确的等式解决了它。你能进一步解释一下apos的评论吗?你是说如果不是字符串,就要删除会话变量周围的?
作为一个侧面,如果account\u id不是字符字段,我建议不要添加撇号。
:这意味着如果account\u id是字符串,则将值括在引号中。如果是一个数字,那么它的罚款没有报价权-谢谢大家。。。该睡觉了。真不敢相信我错过了这两件事。我想知道社区是否开始关闭这样一个重复的示例问题,而不是抢夺一些代表点。我想永远不会。雷普是国王。而且没有一个已经回答过的问题,甚至没有一个专门的参考问题。
SELECT COUNT(*) FROM computers WHERE account_id = '".$_SESSION['account']['account_id']."'