私はこのクエリを持つ検索ボックス機能を作成しています:
$query="SELECT * FROM article WHERE title LIKE ? OR description LIKE ?";
次に、foreachループで、次の配列を作成します。
$params[]= "%".$keyword."%";
$params[]= "%".$keyword."%";
次に、実行します。
$stmt=$cxn->prepare($query);
$stmt->execute($params);
これは機能しますが...
foreachループの後に、「LIMIT?、?」を追加したい場合は、次のようにします。
$query.=" LIMIT ?, ?";
$params[]=$row_number;
$params[]=$items_per_page;
次に、スクリプトを実行すると、次の致命的なエラーがスローされます。
PHP Fatal error: Uncaught exception 'PDOException' with message
'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 ''0', '2'' at line 1' in ..../index.php:247
Stack trace:
#0 .../index.php(247): PDOStatement->execute(Array)
#1 {main}
thrown in ..../index.php on line 247
キーワードの周りにアポストロフィを追加しようとしましたが$params= "'%".$keyword."%'";
、これは機能しませんでした。
また、PHPMyAdmin内でまったく同じクエリを試しましたが、機能しました。
なぜこれがエラーをスローしているのか誰かが知っていますか?
よろしくお願いします。