PHP:SQLのLIKE検索で使用するキーワードのエスケープ
最終更新日時:2013-05-29 20:19:02
PHP
PHP
概要
いわゆるプレースホルダーを使わないような SELECT を PHP で実行する際、キーワードを用いて検索する場合には、そのキーワードをエスケープしないといけません。
特に、LIKE 検索で使用する "%" や "_" が要注意です。
エスケープ例
PHP で SQL で使用する文字をエスケープするには、mysql_escape_string を使うのが一般的ですが、これだけでは LIKE 検索で使用する "%" や "_" はエスケープされません。
従って、以下のように明示的に "%" や "_" は置換し、さらに mysql_escape_string を使用するようにします。
$keyword = mysql_escape_string(str_replace(array('\\', '%', '_'), array('\\\\', '\%', '\_'), $keyword));