今天 程序遇到下述 :
Database Error: Conversion from collation utf8mb3_general_ci into utf8mb4_general_ci impossible for parameter3988
场景时 我的接口程序需要插入 emoji
😅😅😉😉😉, 但插入时代码抛错.
我这边也是 DBA 将 Mysql5.7 才升级到 mysql8 之前就遇到很多默认编码不同的问题. DBA 批量将我们的表字段编码都改为 utf8mb4
字符集排序 utf8mb4_general_ci
CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci
PHP 程序连接 mysql
的 chatset = 'utf8'; 因为之前有遇到个类似问题. 之前排故 都是各种找 表 / 库 / 字段 的编码字符集是否正常.
最后找到的原因是 连接时字符集出了问题.
升级了mysql8, PHP mysql 客户端 utf8 对应的字符集 在mysql服务端那边变成了 utf8mb3
....
我调整了默认连接 字符集编码 chatset = 'utf8mb4';
, insert 插入成功了 .