Sponsored Link
[MySQL, Codeigniter]DBに絵文字が文字化けしないようにする
MySQL側の設定
-- 既に作成済みのデータベースを「utf8mb4」対応する
ALTER DATABASE データベース名 DEFAULT CHARACTER SET utf8mb4;
-- 既に作成済みのテーブルを「utf8mb4」対応する
ALTER TABLE テーブル名 DEFAULT CHARACTER SET utf8mb4;
-- 既に作成済みのカラムを「utf8mb4」対応する
ALTER TABLE テーブル名 MODIFY カラム名 型 CHARACTER SET utf8mb4 NOT NULL;
■参考
https://alaki.co.jp/blog/?p=1814
Codeigniter側の設定
Config/database.php
ポイントは、
char_set
の文字コードを utf8mb4
に変更すること
MySQL上の文字コードだけを変更してもここを変更しないと文字化ける
$db['default'] = array(
'dsn' => '',
'hostname' => 'hostname',
'username' => 'user_name',
'password' => 'password',
'database' => 'db_name',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8mb4',
'dbcollat' => 'utf8mb4_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);