1

PDOの一部である行カウント機能を使用しようとしています。foreachループを使用して、壊れたパーツのリストを調べ、注文する必要のある各パーツの数をカウントしていますが、コードiを使用しています。以下を機能せず、このエラーを修正します

「致命的なエラー: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です。

二重引用符を使用すると、問題が解決する場合があります。

また、$partsSQLステートメントでは引用符を使用していないため$parts、常に数値または引用符を必要としないその他のタイプであることを確認してください。

于 2012-11-28T03:18:41.690 に答える
0

エラーメッセージは、$stmtがオブジェクトではないことを示しています。

これは、クエリが不良であることが原因である可能性があります...は$parts一重引用符で囲まれて解釈されないため、文字通りクエリに含まれます。

于 2012-11-28T03:20:54.190 に答える