记一次PHP+Mysql保存微信昵称带表情符失败案例
bug描述
做微信登陆时,出现部分用户不能等陆。
经过查看日志,发现是因为此部分用户使用了带表情的昵称。
Statement could not be executed (HY000 - 1366 - Incorrect string value: '\xF0\x9F\x87\xB5 \xF0...' for column 'nickname' at row 1)
问题原因
php连接mysql时使用的charset
是utf8
解决方法
- msyql的字符集使用
utf8mb4
,COLLATE utf8mb4_general_ci
- php连接mysql时所使用的字符集需设置成
utf8mb4