升级到mysql5.7之后,laravel程序突然提示以下错误:

SQLSTATE[HY000]: General error: 2036 (SQL: select * from xxx)

以下是网络提供的2种解决方案

1、关闭laravel mysql的严格模式(config/database.php strict项),

不过这样子会出现一个小小的问题,就是数据类型的约束不能在进行模型操作时抛出异常了,例如数据表中有content字段,数据类型varchar(191),通过Eleqount模型创建一条数据,如果content字段字符长度在插入时超过191,将不会再抛出异常了,但是真实插入到MySQL的时候将会被截断成191

 2、将php的mysql驱动从 php-mysql 更换为 php-mysqlnd (这是一个php扩展,用于操作数据库的驱动,可以用带代替php-mysql)

关于mysqlnd的介绍:(引用自:https://baike.baidu.com/item/mysqlnd?fr=aladdin

但是我本人在laravel5.8下测试,第一种方法并未生效,第二种方法有效。