主页

PHP+MYSQL进行emoji表情插入

砚台词   IP属地: 青海
0 点赞 0阅读 3206

Mysql版本必须大于5.5.3,因为5.5.3 之后才出了utf8mb4

我理解的utf8mb4就是utf8的升级版,Emoji表情是4字节,而 utf8 最大只能容纳三个字节。

开始步骤:

备注:这里我用的是win为例,数据库版本为5.7.26,TP5.0.2

步骤一: 

1,修改mysql的配置文件 my.ini ,(windows系统本文件在 D:\phpstudy_pro\Extensions\MySQL5.7.26(我的是D盘,大家根据自己的安装目录))

[client]

default-character-set=utf8mb4

[mysqld]

character-set-client-handshake = FALSE

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

init_connect='SET NAMES utf8mb4'


大家注意看一下我用红色箭头标明的哪行,windows下的my.ini文件里没有这行,需要手动添加进去character-set-client-handshake = FALSE。

执行 SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%'; 这段sql代码是否和如下图一致:

如果不一致就把character-set-client-handshake = FALSE行添加上去。

步骤二:

执行 SHOW VARIABLES LIKE '%sql_mode%'; sql语句。

查询的结果是否包含NO_ENGINE_SUBSTITUTION 值


如果没有就执行 SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION'; sql语句,在查询就会有该值了。

步骤三:

修改TP的数据库编码方式(默认utf8),修改为:utf8mb4


备注:这是个坑,搞了好半天,不知道是我设置没对还是其他问题,直接在mysql表里插入emoji就会报错,通过php代码插入没报错。



© 著作权归作者所有,转载或内容合作请联系作者