thinkphp设置DB_CHARSET为utf8mb4
高洛峰
高洛峰 2017-04-11 10:40:47
0
3
685

tp3.2.3数据库配置 'DB_CHARSET'=> 'utf8mb4',执行报错。如下

SQLSTATE[HY000] [2019] Can't initialize character set utf8mb4 (path: /usr/share/mysql/charsets/)
错误位置

FILE: /data1/www/htdocs/733/ecampus/3/ThinkPHP/Library/Think/Db/Driver.class.php  LINE: 109

如果不用tp,使用原生的sql ‘set names utf8mb4’ 执行没问题。
到底哪里出错了 求解决!谢谢!

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

reply all(3)
Peter_Zhu

帮帮我!我顶!

Peter_Zhu

应该是你的配置没生效 试试直接改convention.php

阿神

我也遇到类似的问题,我的更奇怪
线上和本地都是TP3.2,本地配库配置 'DB_CHARSET'=> 'utf8mb4',没有问题,线上就不行。(线上php5.6,线下php7)
线上修改DB连接用 mysql:host=localhost;dbname=db_demo;charset=utf8mb4 依然报错,改用 PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4" 就成功了。
ps: 一直用laravel,旧的项目用TP。总之放弃TP,方能归一,

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!