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