首页 > 后端开发 > php教程 > 关于php7 设计链接mysqlutf8mb4字符集的问题

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

WBOY
发布: 2016-07-06 13:51:30
原创
1468 人浏览过

通过epel源安装php7后连接数据库直接提示:

<code>Unable to set client connection character set: utf8mb4</code>
登录后复制
登录后复制

使用utf8则没有报错

找到一种解决方案: 直接使用sql语句设置字符集则

<code>SET NAMES 'utf8mb4';</code>
登录后复制
登录后复制

但是使用这种方法, 总感觉不好, 而且之前代码需要改动的地方也不少, 有点划不来

大大们, 有解决方案吗, 这里先谢过了

PS: 没辙google了一天都没有找到解决方案, 不过估计是很傻B的问题

================================================================

问题原因找到了, 果然只是配置的问题

<code>$pdo = new PDO('mysql:host=localhost;dbname=my_db;charset=utf8mb4', 'db_user', 'db_password');</code>
登录后复制
登录后复制

to:

<code>$pdo = new PDO('mysql:host=localhost;dbname=my_db', 'db_user', 'db_password', array(
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4',
));</code>
登录后复制
登录后复制

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

回复内容:

通过epel源安装php7后连接数据库直接提示:

<code>Unable to set client connection character set: utf8mb4</code>
登录后复制
登录后复制

使用utf8则没有报错

找到一种解决方案: 直接使用sql语句设置字符集则

<code>SET NAMES 'utf8mb4';</code>
登录后复制
登录后复制

但是使用这种方法, 总感觉不好, 而且之前代码需要改动的地方也不少, 有点划不来

大大们, 有解决方案吗, 这里先谢过了

PS: 没辙google了一天都没有找到解决方案, 不过估计是很傻B的问题

================================================================

问题原因找到了, 果然只是配置的问题

<code>$pdo = new PDO('mysql:host=localhost;dbname=my_db;charset=utf8mb4', 'db_user', 'db_password');</code>
登录后复制
登录后复制

to:

<code>$pdo = new PDO('mysql:host=localhost;dbname=my_db', 'db_user', 'db_password', array(
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4',
));</code>
登录后复制
登录后复制

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

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板