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 [...]