libpqにおけるSQLエスケープについて
多分あんまり使うことはない。
code:escape.rb
require 'pg'
conn = PG::Connection.open(:dbname => 'test')
str = "('-') (;_;)"
value = PG::Connection.escape_string(str)
# こういう場合は、プレースホルダーを使った方が良さそう
PQescapeLiteral
SQLコマンド内で使用する文字列をエスケープ
SQLコマンド内で、リテラル定数としてデータの値を入れる時に役立つ
PQexecParamsまたは同義のルーチン内で別のパラメータとしてデータ値が渡される場合は、エスケープすることは必要でもなければ正しくもないことに注意してください。
PQescapeIdentifier
SQL識別子(テーブル、列、関数名など)として使用する文字列をエスケープ
PQescapeStringConn
PQescapeLiteralとほぼ同様に文字列リテラルをエスケープ
PQescapeByteaConn
bytea型としてSQLコマンド内で使用するバイナリデータをエスケープ
参考URL