PostgreSQL に使う SQL パラメータをエスケープするときには pg_escape_literal() を使うほうがよいでしょう。 addslashes() を PostgreSQL で使ってはいけません。 カラム型が bytea の場合は、代わりに pg_escape_bytea() を使わなければ …

[Editor's Note] 't' or 'f' is valid boolean expression for PostgreSQL. 文字列連結による SQL 文の組み立てで安全な SQL 呼び出しを実現するには、以下の要件を満たさなければなければならない。 文字列リテラルに対しては、エスケープすべき文字をエスケープすること PHPのpg_escape_identifier()とpg_escape_literal()は便利そうだ!と思った方。申し訳ないです。私が関数を実装していなかったので 次にリリースされるPHP 5.4.0にも入っていません。もしかするとPHP 5.4.1には入るかも知れませんが、どう

All values from PostgreSQL are strings, since 第四企画 坂井 潔 SQLインジェクションの脅威からシステムを守るために、プログラミング言語/スクリプトからSQLを発行するときには、パラメータを適切に処理しなくてはなりません。今回はプレースホルダ編と題し、SQLインジェクション対策として最も簡単で効果的な方法を、PHPで説明します。 PHP 5.4.0 より前のバージョンでは、 magic_quotes_gpc が デフォルトで on だったため、 原則として addslashes() 関数がすべての GET, POST, COOKIE のデータに対して実行されていました。 magic_quotes_gpc によって既にエスケープされた文字列に対して addslashes() 関数 を絶対に実行してはいけません。 PHP will return values of PostgreSQL boolean datatype as single character strings "t" and "f", not PHP true and false. 返り値: エスケープされたデータを文字列で返します。 具体的には例えばINSERTする値にシングルクォーテーション(')などが含まれていた場合SQL文がおかしくなってしまいますが、この関数を通すことでSQL文の中で直接記述できないような値に対してエスケープ処理を行ってくれます。

PHPで用意されているpg_escape_string関数とpg_escape_bytea関数はそれぞれ文字列型、bytea型のデータを、PostgreSQLのSQLに埋め込むようにエスケープしてくれる関数です。数値用のエスケープ関数はありません。この理由に関し