php mysql 连接 utf8_php,mysql_关于php7 设计链接mysqlutf8mb4字符集的问题,php,mysql - phpStudy...

在PHP7中遇到连接MySQL时设置utf8mb4字符集失败的问题,通过设置PDO的初始化命令或者更换驱动解决了问题。卸载`php70w-mysql`,安装`php70w-mysqlnd`并重启服务,确保mysqlnd驱动生效,成功解决无法设置utf8mb4的困扰。
摘要由CSDN通过智能技术生成

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

通过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

=====================2016-07-06 14:43:39=========================

彻底找到问题所在了, 直接看命令

yum remove php70w-mysql php70w-mysqli

yum install php70w-mysqlnd

/etc/init.d/php-fpm restart

/etc/init.d/nginx restart

phpinfo:

mysqli

Client API library version

mysqlnd 5.0.12-dev - 20150407 - $Id: 241ae00989d1995ffcbbf63d579943635faf9972 $

之前一直没能找到原因就是因为, 只卸载了php70w-mysql, 而没有卸载php70w-mysql然后安装了php70w-mysqlnd, 导致php70w-mysqlnd驱动没有生效

PS: 也有可能是我没有重启php-fpm和nginx的原因导致的, 不过姑且这么认是上述原因到诊的吧, 找到实际原因了, 还是蛮开心的, 能睡个好觉了 :-D

相关阅读:

js正则匹配多个手机号码问题

win7-IIS下部署asp.net项目,访问不倒数据库文件?

C语言指针表达方式与效率问题

C++把struct直接存入了memcache中,java从memcache读,怎么去反序列化这个结构体,得到一个bean呢

mysql导入大容量SQL备份文件

按照django book第四章上敲的出现错误

谁有Echart 的 js文件 ? 或者 文档 ,能分享一下吗?十分感谢

如何保证linux下的某一个端口号不被其它程序占用?

用maxlength plugin jQuery插件限制textarea输入字数达不到指定的效果

Node.js应用CPU占用高,如何调试

C语言中连接两个字符串的方法都有哪些

为什么在js中解析json数据会把值“aqua”报语法错误?

objective-c 单例继承问题

如何实现虚拟磁盘映射

Xcode删除了无用的控制器后出现了这个问题

小米官网顶部导航问题如何用JQ做?

需要开发一个沙盒,有什么技术资料可以看的么?

Python 不能自动创建不存在的文件

mysql 中的varchar255 uft-8 的格式到底能放多少汉字

问英语在编程当中的重要程度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值