Pdo行计数错误

时间:2012-11-28 03:03:46

标签: php mysql pdo rowcount

我一直在尝试使用行计数功能,这是PDO的一部分..我正在使用每个循环来通过一个损坏的部分列表,然后计算我需要订购的每个部分的数量但是使用我放下的代码不能正常工作,我正在重新发现这个错误

  

“致命错误:在第15行的W:\ xampp \ htdocs \ ICT_Devices \ damage_log \ damage_parts_find.php中的非对象上调用成员函数rowCount()”

任何帮助都会很棒我的php位于这里,我知道pdo连接文件以及每个循环工作但行数方面有问题

<?php
define('INCLUDE_CHECK',true);
require '../lib/connect/PDO_connect.php';

foreach($db->query("SELECT * FROM `damage_list`") as $damage_part) {
$parts=$damage_part['Damage'];  
$stmt = $db->query('SELECT * FROM damage_log where damage=$parts');

$row_count = $stmt->rowCount();
echo $parts. "=".$row_count;
echo "<br>";


}


?>

2 个答案:

答案 0 :(得分:1)

因为when using single quote, variables will not be expanded

所以你的查询几乎看起来像是:

SELECT * FROM damage_log where damage=$parts

因此发生错误,$stmtFALSE

使用双引号可以解决您的问题。

此外,由于您未在SQL语句中引用$parts,因此请确保$parts始终是数字或任何其他不需要引用的类型。

答案 1 :(得分:0)

错误消息告诉您$ stmt不是对象。

这可能是因为您的查询不正确... $parts不会在单引号内解释,因此在字面上就是查询。