2008.10.15 PHP+MySQL:LIKE文:ワイルドカードのエスケープ処理 カテゴリ:PHP 先日、LIKEのワイルドカードである_と%はmysql_escape_string()ではエスケープされないとかきました。 ではどう対応するか。 str_replace(array('_','%'),array('\_','\%'),$str) こんな感じで置き換えると良いみたいな記事もありましたが、マルチバイト(特にSJIS?)だと誤認知される可能性があるっぽい。 仕方が無いのでちょっとカッコ悪いけど個別に置き換えた。 あと、円マーク(バックスラッシュ)はLIKEで使う際には2重化してあげないといけない。 つまり\を検索しようとするなら、LIKE文の中では「\\\\」となる。 \n(改行コード)を検索するなら「\\n」だが、\nという文字列を検索するなら「\\\\n」となる。 これにつ