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

Mary-Kate Olsen
リリース: 2024-11-14 11:10:01
オリジナル
196 人が閲覧しました

How to Properly Bind Values with LIKE Operator in PDO?

Bind LIKE Values with PDO Extension

In database queries using the LIKE operator, it's crucial to properly bind values to prevent SQL injection attacks. When dealing with LIKE queries involving wildcard characters (% or _) at the end, understanding the appropriate binding technique is essential.

Let's consider the example query:

select wrd from tablename WHERE wrd LIKE '$partial%'
ログイン後にコピー

Here, we want to bind the variable $partial using PDO. The correct way to do this is:

select wrd from tablename WHERE wrd LIKE :partial
ログイン後にコピー

where :partial is bound to $partial with the value "somet%" (with the trailing wildcard). This ensures the query searches for words that match somet followed by any number of characters.

Alternatively, you could use:

SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')
ログイン後にコピー

to perform the wildcard concatenation in MySQL instead of the PDO statement.

However, if the partial word you're searching for might itself contain wildcard characters (% or _) or backslashes, additional escaping mechanisms may be necessary in the PDO preparation and parameter binding.

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

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