PHP:SQLのLIKE検索で使用するキーワードのエスケープ

最終更新日時:2013-05-29 20:19:02
PHP

概要


いわゆるプレースホルダーを使わないような SELECT を PHP で実行する際、キーワードを用いて検索する場合には、そのキーワードをエスケープしないといけません。
特に、LIKE 検索で使用する "%" や "_" が要注意です。


エスケープ例


PHP で SQL で使用する文字をエスケープするには、mysql_escape_string を使うのが一般的ですが、これだけでは LIKE 検索で使用する "%" や "_" はエスケープされません。
従って、以下のように明示的に "%" や "_" は置換し、さらに mysql_escape_string を使用するようにします。

 $keyword = mysql_escape_string(str_replace(array('\\', '%', '_'), array('\\\\', '\%', '\_'), $keyword));



お問い合わせは 掲示板 にて。