-1

私は PDO に問題があり、議論されているのを見てきましたが、提供されたさまざまな解決策がうまくいきませんでした。SQLクエリのLIMITを設定するために数値をバインドする場合です。

これが私が得るエラーです:

Warning: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''2'' at line 1 in ...

コード:

$remaining = 3 - $countRows;
$con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
$result4 = $con->prepare("SELECT  * FROM  item_descr WHERE id_item != ? LIMIT ?");
$result4->execute(array($itemId, intval($remaining)));
4

2 に答える 2

2
$dbh->setAttribute( PDO::ATTR_EMULATE_PREPARES, false );

intval(ここで提案されているように、この行を追加して削除することが解決策でした:

同様の質問への回答

于 2013-06-18T21:30:42.087 に答える
0

次のようなことをしないのはなぜですか:

SELECT  * FROM  item_descr WHERE id_item != :id LIMIT :limit

$result->bindParam(':id', $itemID, PDO::PARAM_INT);
$result->bindParam(':limit', $remainint, PDO::PARAM_INT);

現在のコードでは、実際にはパラメーターをバインドしていません。

于 2013-06-18T21:18:52.263 に答える