PDO でプレースホルダーを使用した LIKE クエリを実装するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-12 01:34:03
オリジナル
366 人が閲覧しました

How to Implement LIKE Queries with Placeholders in PDO?

PDO での LIKE クエリの実装

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%");
ログイン後にコピー

バインド変数で変数値をパーセント記号で囲むことにより、生成されたクエリでは LIKE 句が確実に検索します。指定された単語を含むアドレス。この調整を行わないと、クエリは次のようなものを生成します。

SELECT * FROM tbl WHERE address LIKE '%"foo"%' OR address LIKE '%"bar"%'
ログイン後にコピー

パーセント記号が引用符内に埋め込まれているため、このクエリは失敗します。検索では、正確なテキスト "foo" または " を含むアドレスが検索されます。 bar" ではなく、これらの用語を含む単語ではありません。

以上がPDO でプレースホルダーを使用した LIKE クエリを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート