ホームページ >データベース >mysql チュートリアル >PDO で末尾のパーセント記号を使用して LIKE 値を適切にバインドする方法
PDO による LIKE 値のバインド
データベース クエリでは、LIKE 演算子を使用してワイルドカード検索を実行します。 PDO 拡張機能を使用して LIKE 値をバインドする場合、末尾のパーセント記号を正しく処理することが重要です。
LIKE 値を末尾のパーセント記号でバインド
指定されたクエリでは、変数 $partial% をバインドしたいと考えています。正しいアプローチは、末尾にパーセント記号を付けたプレースホルダーを使用することです:
select wrd from tablename WHERE wrd LIKE :partial%
ここで、:partial は $partial="somet" にバインドされており、パーセント記号が自動的に追加されます。
代替アプローチ
上記のアプローチは標準ですが、次のこともできます。検討してください:
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 サイトの他の関連記事を参照してください。