thinkphp设置DB_CHARSET为utf8mb4
高洛峰
高洛峰 2017-04-11 10:40:47
[PHP讨论组]

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教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(3)
天蓬老师

帮帮我!我顶!

天蓬老师

应该是你的配置没生效 试试直接改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,方能归一,

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号