I love iPhone, Android, Cocos2d-x
CakePHP MySQL で文字化けを防ぐ設定
MySQL で文字化けを防ぐためには
SET NAMES utf8
のように SET NAMES を実行するのが有効なのですが、これを app/config/database.php で設定する方法です。
'encoding'=>'文字コード'
をデータベースの設定項目に追加してやるだけです。
具体的には app/config/database.php が下記のようになります。
var $default = array( 'driver' => 'mysql', 'connect' => 'mysql_connect', 'host' => 'localhost', 'login' => 'user', 'password' => 'password', 'database' => 'dbname', 'prefix' => '', 'encoding' => 'utf8' );
cake/libs/model/dbo/dbo_mysql.php で下記のように実行されています。
function connect() { (略) if (isset($config['encoding']) && !empty($config['encoding'])) { $this->setEncoding($config['encoding']); } return $this->connected; }
function setEncoding($enc) { return $this->_execute('SET NAMES ' . $enc) != false; }
関連する投稿
4 comments
コメントをどうぞ
Additional comments powered by BackType
[...] を追加すればいいらしい…ということで末尾に追加したところ、きちんと表示されました 参考URL:http://www.syuhari.jp/blog/archives/141 [...]
[...] 参考にしたサイトは、ここ。MySQLのマニュアルを読めよ。> 自分 ‘encoding’ => ‘utf8′ [...]
[...] しかし CakePHP ではもっと簡単に設定する方法があります。 CakePHP MySQL で文字化けを防ぐ設定 | Sun Limited Mt. [...]
[...] http://blog.syuhari.jp/archives/141 [...]