ホームページ >バックエンド開発 >PHPチュートリアル >PDO でパラメーターを使用して LIKE クエリを適切に構築する方法

PDO でパラメーターを使用して LIKE クエリを適切に構築する方法

DDD
DDDオリジナル
2024-11-11 11:38:031042ブラウズ

How to Properly Structure LIKE Queries with Parameters in PDO?

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

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