※CodeIgniter 2.1.4での話です(←今現場で使っているのがこれなので…) PHPの開発フレームワークであるCodeIgniterで、Like文を使った検索処理を行った際に内部で生成されるSQLがおかしくなるケースがあることがわかりました。とりあえず忘れないようにメモ。現象等は下記の通り。 Like検索条件にアンダースコアやパーセンテージの文字が入った場合に予約語、予約文字と混ざらないようにエスケープする処理が入る。 エスケープには「!」をつけるようだが、その処理に不備があり、エスケープ記号の「!」が「!!」になってしまう。 本現象はPostgreSQL用のドライバー「postgre_driver.php」で発生。 本件について、MySQLでも同じような問題が報告されてこちらは訂正されている様子。 github.com PostgreSQLについてはほかのブログ等でもだいぶ前に