noshi’s diary

ゲームの事、映画やドラマ、思いついた事、プログラミングの事、雑記的なことを書いています

pg_escape_string() とmysql_real_escape_string()

mysqlエスケープ処理を学習中。 さっそく、エスケープ処理で使われる関数のpg_escape_string() とmysql_real_escape_string()で躓く。 pg_escape_string()とmysql_real_escape_string()のこのふたつ、データベースの環境で使い分ける必要があるみたいです。 というのも、mysql環境下で次のようにしたところ、 $text2 = pg_escape_string($text1); fatalエラーが発生。 しかし、 $text2 = mysql_escape_string($text1); としたところ、意図したようにエスケープ処理ができました。 実際マニュアルを読んでも、 「pg_escape_string() は、データベースへの問い合わせに使う文字列をエスケープします。 PostgreSQL フォーマットにエスケープされた文字列を、クォートなしの形式で返します。 」 とありますから、pg_escape_string() はPostgreSQL用と見て間違いないものと思われます。 エスケープ処理は、SQLインジェクションを防ぐ要の処理。 これは、深く理解剃る必要がありますな。