IT技術
AD

postgresql 9.1 からエスケープ文字の認識が変わってた

kawa.xxx
記事内に商品プロモーションを含む場合があります

postgresql は 9.1 から standard_conforming_strings のデフォルト値が on に変更になり、少しハマったのでメモ。

この変更は、E'...’ 形式でない文字列内の \ が エスケープとして認識されなくなるということです。

つまり、自前でゴリゴリエスケープ処理なんかしているとアウトになりかねません。(そんなプログラム書くな。)なので、プリペアドステートメントなり、ライブラリの提供している安全なものを使うようにしましょう。

9.1 以前 (standard_conforming_strings off 設定)

'\'' :OK
E'\’’ : OK

9.1 以降 (standard_conforming_strings on 設定)

'\'' :NG
E'\'' :OK
'''' :OK

詳細は下記参考文献をご覧ください。

参考文献

ABOUT ME
kawa.xxx
kawa.xxx
都内のIT系企業に勤める会社員。自分の備忘録的なアウトプット用の場所で、ボルダリングやガシェッド、セキュリティ、カメラの話題が中心です。
記事URLをコピーしました