ホームページ >バックエンド開発 >PHPチュートリアル >PDO でパラメータを指定して LIKE 演算子を使用する方法は?

PDO でパラメータを指定して LIKE 演算子を使用する方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-27 09:26:11801ブラウズ

How to Use LIKE Operator with Parameters in PDO?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。