问题描述
使用laravel5.8+mysql,在查询数据时,报SQLSTATE [HY000]: General error:2036
错误.
原因分析
造成这个错误,是因为数据表中有json字段。关闭mysql的严格模式是不能解决这个问题的。
解决方法
将php的mysql驱动从 php-mysql
更换为 php-mysqlnd
.
以centos+php7.2为例:
yum remove php72w-mysql ##移除原有的php-mysql
yum install php72w-mysqlnd ##安装php-mysqlnd
service nginx restart ##重启nginx服务
service php-fpm restart ##重启php-fpm服务
补充一点,这个命令可以解决报错,但是会导致整形和字符串转换问题,整型会被误转为字符串型
并未遇到类型转换问题哦,你的mysql是哪个版本?
我也碰到这个问题了,但是不必非要更新驱动,在 db 配置里加一行语句
'mysql' => [
],
就可以解决了