先日のphp 5.2.3のアップデートで mysql_set_charset()(英語)という関数がセキュリティフィックスという名目で追加されました。 Sets the client character set. php manual 『 mysql_set_charset()(英語)』より どうしてこの関数が追加されたのかというと、おなじみのSET NAMESクエリでは、SQLインジェクションの脆弱性になる可能性があるからです。 このSET NAMESクエリは、SQL文レベルでの文字コード対応なので、どうしても隙ができてしまう可能性があるとのことです。 本来であれば、my.cnf設定などでデフォルトで望んでいる文字コードが吐き出されるようにしておくべきなのですが、それができないphpユーザーもいるのが現状です。それがSET NAMESクエリがよく使われる理由です。php5.2.3では、打
![mysql_set_charset() vs SET NAMESクエリ | うえちょこ@ぼろぐ](https://cdn-ak-scissors.b.st-hatena.com/image/square/8d71ff5111e05619a10d29bb40d7aebaa75c8fbc/height=288;version=1;width=512/https%3A%2F%2Fs0.wp.com%2Fi%2Fblank.jpg)