您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

关于php7 设计链接mysqlutf8mb4字符集的问题

2025/10/2 22:53:42发布12次查看
通过epel源安装php7后连接数据库直接提示:
unable to set client connection character set: utf8mb4

使用utf8则没有报错
找到一种解决方案: 直接使用sql语句设置字符集则
set names 'utf8mb4';

但是使用这种方法, 总感觉不好, 而且之前代码需要改动的地方也不少, 有点划不来
大大们, 有解决方案吗, 这里先谢过了
ps: 没辙google了一天都没有找到解决方案, 不过估计是很傻b的问题
================================================================
问题原因找到了, 果然只是配置的问题
$pdo = new pdo('mysql:host=localhost;dbname=my_db;charset=utf8mb4', 'db_user', 'db_password');

to:
$pdo = new pdo('mysql:host=localhost;dbname=my_db', 'db_user', 'db_password', array( pdo::mysql_attr_init_command => 'set names utf8mb4',));

不知道为啥新版本的pdo的驱动无法直接设置连接字符集为utf8mb4, 讲道理应该是向后兼容才对的, 不过至少找到解决方案了 :-d
回复内容: 通过epel源安装php7后连接数据库直接提示:
unable to set client connection character set: utf8mb4

使用utf8则没有报错
找到一种解决方案: 直接使用sql语句设置字符集则
set names 'utf8mb4';

但是使用这种方法, 总感觉不好, 而且之前代码需要改动的地方也不少, 有点划不来
大大们, 有解决方案吗, 这里先谢过了
ps: 没辙google了一天都没有找到解决方案, 不过估计是很傻b的问题
================================================================
问题原因找到了, 果然只是配置的问题
$pdo = new pdo('mysql:host=localhost;dbname=my_db;charset=utf8mb4', 'db_user', 'db_password');

to:
$pdo = new pdo('mysql:host=localhost;dbname=my_db', 'db_user', 'db_password', array( pdo::mysql_attr_init_command => 'set names utf8mb4',));

不知道为啥新版本的pdo的驱动无法直接设置连接字符集为utf8mb4, 讲道理应该是向后兼容才对的, 不过至少找到解决方案了 :-d
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product