dポイントプレゼントキャンペーン実施中!

mysql_real_escape_stringは、非推奨なのでしょうか?

▽PHP: mysql_real_escape_string - Manual
  http://php.net/manual/ja/function.mysql-real-esc …
>この拡張モジュールを使うことはおすすめできません。 MySQLi あるいは PDO_MySQL を使うべきです
この「拡張モジュール」って何を意味しているのでしょうか?
「mysql_real_escape_string」のことでしょうか?

それとも、mysql_set_charset()などで、「デフォルトの文字セット」を設定しておけば、利用しても良いのでしょうか?

A 回答 (1件)

mysql_real_escape_stringというよりも,mysql拡張モジュール自体が非推奨です。


http://www.php.net/manual/ja/book.mysql.php にあるものが非推奨となっている対象です。

わかりやすく致命的なのは,server-side Prepared Statementsがサポートされないことでしょう。
http://www.php.net/manual/ja/mysqlinfo.api.choos …
これは,SQLインジェクションに対する対策として基本的なプレースホルダを利用する方法が利用できないことを意味します。

Maintenance onlyと書かれているので,mysql拡張モジュールはよっぽど致命的な問題がない限り,修正はなされないと思われます。
このため,書かれている通り,mysqli拡張モジュールまたはPDOのMySQLドライバを利用すべきです。
    • good
    • 0
この回答へのお礼

回答ありがとうございました

>mysql拡張モジュール自体が非推奨です。
http://www.php.net/manual/ja/book.mysql.php にあるものが非推奨となっている対象です
もしかして、と思っていたのですが、やっぱりそうなんですね。ちょっとショックでした…

http://www.php.net/manual/ja/mysqlinfo.api.choos …
このページ初めて知りました。大変参考になりましたー

お礼日時:2012/08/06 15:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!