$queryString = 'SELECT * FROM n8593370.items AND Suburb = :suburb AND Name LIKE \'%:name%\'';
$stmt = $pdo->prepare($queryString);
$stmt->bindValue(':suburb', $suburb);
$stmt->bindValue(':name', $name);
$stmt->execute();
$results = $stmt->fetchAll();
私は上記のエラーが発生している理由を理解できません。PDOオブジェクト:無効なパラメータ番号:バインドされた変数の数がトークンの数と一致しません。
私はバインドする変数が2つしかなく、実際には両方をバインドしていると確信しています。
これをそれぞれの条件付きで実行すると、WHERE 1 = 1 AND Suburb = :suburb
またはWHERE 1 = 1 AND Name LIKE \'%:name%\'
となり、エラーはありません。
ALTHOUGH 2つの条件文の後ろには結果が返されませんが、MySQL Workbenchでテストすると期待通りに動作します。
誰かが問題を明らかにすることはできますか?
それはトートロジーだから、それは意味がないとして '1 =その '1を削除します。 – Rahul
実行前に 'echo $ queryString'を実行し、実行したものをコメントアウトして、あなたが渡しているものを見るだけです。 – Webeng
1 = 1があるので、条件付きでクエリの条件を追加できます。しかし、はい、私は質問のためにそれをコメントします:) –