2016-07-14 60 views
7

美好的一天,Codeigniter不接受「utf8mb4」作爲默認字符集

我正在使用Codeigniter開發我的web應用程序。 服務器上的PHP版本是5.6.22,而Mysql版本的db是5.6.27。 在CodeIgniter的database.php中當我改變字符集爲「utf8mb4」,從「UTF-8」,我得到(圖片附後)以下消息

無法設置客戶端連接的字符集:utf8mb4

enter image description here

UPDATE 我可以具有相同的PHP版本和相同的MySQL版本的另一臺服務器上運行的應用程序笨。所以它一定是屬於httpd.conf或php.ini的,也許吧?

+0

在實際中改變了數據庫的字符集。爲此請閱讀此https://mathiasbynens.be/notes/mysql-utf8mb4 – pradeep

+0

請參閱更新。謝謝 –

回答

0

我能夠通過刪除我的PHP安裝和從頭安裝httpd和PHP刪除錯誤。

2

database.php

設置char_setutf8mb4dbcollatutf8mb4_unicode_ciutf8_general_ci


我測試了我的笨3.0

$db['default'] = array(
    'dbdriver' => 'mysqli', 
    'dbprefix' => '', 
    'pconnect' => FALSE, 
    'db_debug' => (ENVIRONMENT !== 'production'), 
    'cache_on' => FALSE, 
    'cachedir' => '', 
    'char_set' => 'utf8mb4', 
    'dbcollat' => 'utf8mb4_unicode_ci', 

); 

並在控制器我添加此

$CI = &get_instance(); 
$CI->load->database(); 
echo $CI->db->char_set; 
echo "<br>"; 
echo $CI->db->dbcollat; 

輸出

utf8mb4 
utf8mb4_unicode_ci 

閱讀本

  1. Using utf8mb4 with php and mysql
+0

因爲我知道有'php.ini'或'my.ini'(mysql) –

+0

沒有什麼請看我更新的問題。另外我不能在控制器中測試它,因爲它不允許我加載視圖。只要給我截圖中的錯誤。 –

+0

@WarisAli你還是這個問題? –