3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援→開発戻り浦島太郎状態の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。

(cakePHP)MySQL保存時に文字化けしないようにする。

こちらで見つけました。 

具体的には app/config/database.php
'encoding'=>'クライアントの文字コード'
を追加してやればいいみたいです。 

こうすると内部的に SET NAMES を実行してくれるっぽいです。

 ちなみに、普通のPHPやクライアントから使うときは
SET NAMES utf8
というようにSET NAMESでクライアントの文字コードを指定してやればいいようです。

 

が、このSET NAMESは脆弱性があるらしく、PHPからの使用はあまり進められてないようです。

変わりにPHP5.2.3から新たに追加された mysql_set_charset() を使うのがよろしいみたいです。

ここら辺の脆弱製がらみの情報はこちらこちら参照にしました。

 まあ、といってもcakePHPの場合 SET NAMES使ってるわけで、自力でフレームワークのコア部分直してもいいんですが、そうするとバージョンアップ等で手間だし、勉強目的なので、しばらくはこのままで行きたいと思います。