ホームページ >バックエンド開発 >PHPチュートリアル >PDO でパラメータを指定して LIKE 演算子を使用する方法は?
PDO での LIKE クエリの実装
PDO で LIKE 演算子を使用する場合、パラメーターに % 記号を含めることが重要です。クエリ自体の中で。これは、PDO プリペアド ステートメントは値を引用符で囲み、% プレースホルダーと干渉する可能性があるためです。
たとえば、次のクエリについて考えてみましょう。
$query = "SELECT * FROM tbl WHERE address LIKE '%?%' OR address LIKE '%?%'"; $params = array($var1, $var2);
このクエリが準備されると、%記号は引用符でカプセル化され、次のようなクエリになります。
SELECT * FROM tbl WHERE address LIKE '%"foo"%' OR address LIKE '%"bar"%'
その結果、二重引用符は LIKE 演算子の意図した機能を妨げるため、クエリは結果を返しません。
この問題を修正するには、代わりにパラメータに % 記号を含める必要があります。
$query = "SELECT * FROM tbl WHERE address LIKE ? OR address LIKE ?"; $params = array("%$var1%", "%$var2%");
この変更により、準備されたクエリは $var1 または $var2 を含むアドレスを正しく検索するようになります。
以上がPDO でパラメータを指定して LIKE 演算子を使用する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。