Codeigniter不接受"utf8mb4"作为默认字符集

War*_*Ali 7 php mysql codeigniter utf-8

美好的一天,

我正在使用Codeigniter来开发我的webapp.服务器上的PHP版本是5.6.22,db的Mysql版本是5.6.27.在codeigniter的database.php中,当我从"utf8"将charset更改为"utf8mb4"时,我收到以下消息.(附图片)

无法设置客户端连接字符集:utf8mb4

在此输入图像描述

更新 我可以在另一台具有相同php版本和相同mysql版本的服务器上运行codeigniter应用程序.所以它必须是属于httpd.conf或php.ini的东西,也许吧?

Abd*_*lam 5

database.php

设置char_setutf8mb4dbcollatutf8mb4_unicode_ciutf8_general_ci


我用Codeigniter 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',

);
Run Code Online (Sandbox Code Playgroud)

然后在控制器中添加

$CI = &get_instance();
$CI->load->database();
echo $CI->db->char_set;
echo "<br>";
echo $CI->db->dbcollat;
Run Code Online (Sandbox Code Playgroud)

输出量

utf8mb4
utf8mb4_unicode_ci
Run Code Online (Sandbox Code Playgroud)

读这个

  1. 在PHP和MySQL中使用utf8mb4


War*_*Ali 0

我能够通过删除我的 php 安装并从头开始再次安装 httpd 和 php 来删除该错误。