ホームページ >データベース >mysql チュートリアル >PDO で末尾のパーセント記号を使用して LIKE 値を適切にバインドする方法

PDO で末尾のパーセント記号を使用して LIKE 値を適切にバインドする方法

DDD
DDDオリジナル
2024-12-28 13:28:10856ブラウズ

How to Properly Bind LIKE Values with Trailing Percentage Symbols in PDO?

PDO による LIKE 値のバインド

データベース クエリでは、LIKE 演算子を使用してワイルドカード検索を実行します。 PDO 拡張機能を使用して LIKE 値をバインドする場合、末尾のパーセント記号を正しく処理することが重要です。

LIKE 値を末尾のパーセント記号でバインド

指定されたクエリでは、変数 $partial% をバインドしたいと考えています。正しいアプローチは、末尾にパーセント記号を付けたプレースホルダーを使用することです:

select wrd from tablename WHERE wrd LIKE :partial%

ここで、:partial は $partial="somet" にバインドされており、パーセント記号が自動的に追加されます。

代替アプローチ

上記のアプローチは標準ですが、次のこともできます。検討してください:

  • CONCAT の使用: クエリは次のように書き換えることができます:
SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')

このアプローチでは、文字列の連結が MySQL に延期されます。

スペシャル脱出文字

検索される単語の一部に %、_、または などの特殊文字が含まれる場合は、追加のエスケープが必要です。次のアプローチを使用します:

$stmt= $db->prepare("SELECT wrd FROM tablename WHERE wrd LIKE :term ESCAPE '+'");
$escaped= str_replace(array('+', '%', '_'), array('++', '+%', '+_'), $var);
$stmt->bindParam(':term', $escaped);

これらの文字をエスケープすることで、LIKE 条件で正しく解釈されるようになります。

以上がPDO で末尾のパーセント記号を使用して LIKE 値を適切にバインドする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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