ホームページ >バックエンド開発 >PHPチュートリアル >PDO で LIKE 演算子を使用して値を適切にバインドするにはどうすればよいですか?

PDO で LIKE 演算子を使用して値を適切にバインドするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-14 11:10:01297ブラウズ

How to Properly Bind Values with LIKE Operator in PDO?

PDO 拡張機能を使用した LIKE 値のバインド

LIKE 演算子を使用したデータベース クエリでは、SQL インジェクション攻撃を防ぐために値を適切にバインドすることが重要です。最後にワイルドカード文字 (% または _) を含む LIKE クエリを処理する場合、適切なバインディング手法を理解することが不可欠です。

クエリの例を考えてみましょう。

select wrd from tablename WHERE wrd LIKE '$partial%'

ここでは、次のようにします。 PDO を使用して変数 $partial をバインドします。これを行う正しい方法は次のとおりです:

select wrd from tablename WHERE wrd LIKE :partial

ここで、:partial は、値 "somet%" (末尾のワイルドカード付き) で $partial にバインドされています。これにより、クエリでは、任意の数の文字が後に続く somet に一致する単語が検索されます。

または、

SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')

を使用して、PDO ステートメントの代わりに MySQL でワイルドカード連結を実行することもできます。 .

ただし、検索している単語の一部にワイルドカード文字 (% または _) が含まれている可能性がある場合、またはバックスラッシュ、追加のエスケープメカニズムが PDO の準備とパラメータのバインディングに必要になる場合があります。

以上がPDO で LIKE 演算子を使用して値を適切にバインドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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