PDO での LIKE クエリの実装
PDO を使用して LIKE 演算子を含むクエリを実行する場合、クエリを適切に構造化する方法を理解することが重要です。クエリとパラメータ。次のクエリを考えてみましょう:
"$query = "SELECT * FROM tbl WHERE address LIKE '%?%' OR address LIKE '%?%'";
$params = array($var1, $ var2);"
エラー:
パーセント記号 (%) がパラメータとして指定されず、クエリ自体に含まれているため、クエリの結果、レコードは返されません。
解決策:
この問題を修正するには:
$query = "SELECT * FROM tbl WHERE address LIKE ? OR address LIKE ?"; $params = array("%$var1%", "%$var2%"); $stmt = $handle->prepare($query); $stmt->execute($params);
説明:
を含めることによりパラメーター内のパーセント記号は、クエリの実行時にプレースホルダーとして適切に扱われることを保証します。これにより、PDO は対応する値を実際の検索語に置き換えるよう指示され、LIKE 操作が正しく実行できるようになります。
元のコードから生成されたクエリを調べると、「SELECT *」のようなことに気づくでしょう。 FROM tbl WHERE address LIKE '%"foo"%' OR address LIKE '%"bar"%'"。準備済みステートメントが、既に引用符で囲まれた文字列内の値を誤って引用しています。上記で概説した正しいアプローチに従うことで、この問題を解決し、PDO で LIKE クエリを正常に実行できます。
以上がPDO でパラメーターを使用して LIKE クエリを適切に構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。