こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

mysql_real_escape_string?

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

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

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

投稿日時 - 2012-08-03 11:20:16

QNo.7624738

暇なときに回答ください

質問者が選んだベストアンサー

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.choosing.php
これは,SQLインジェクションに対する対策として基本的なプレースホルダを利用する方法が利用できないことを意味します。

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

投稿日時 - 2012-08-03 12:24:38

お礼

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

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

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

投稿日時 - 2012-08-06 15:35:46

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)