1

我一直在尝试使用作为 PDO 一部分的行计数功能。我正在使用 for each 循环遍历损坏部件列表,然后计算我需要订购的每个部件的数量,但使用代码我把它放在下面,它不起作用,我正在修复这个错误

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

任何帮助都会很棒,我的 php 位于此处,我知道 pdo 连接文件和 for each 循环都可以工作,但是行数方面我有问题

<?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>";


}


?>
4

2 回答 2

1

因为当使用单引号时,变量不会被扩展

所以你的查询实际上看起来像:

SELECT * FROM damage_log where damage=$parts

因此发生错误,并且$stmtFALSE

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

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

于 2012-11-28T03:18:41.690 回答
0

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

这可能是因为您的查询很糟糕......$parts没有在单引号内解释,因此在查询中是字面意思。

于 2012-11-28T03:20:54.190 回答