字符串中包含emoji使用php插入mysql报错解决方案

  • 内容
  • 评论
  • 相关

方案一:是过滤掉emoji,之前有写过插入数据库之前通过一个函数过滤下。有可能过滤不干净,或者说数据库字段需要保存这个emoji,如何实现呢?

方案二:

1.修改数据库该字段字符集由utf8改为utf8mb4。

2.程序操作sql前设置下字符集:SET NAMES 'utf8mb4' ,thinkphp5为例:Db::execute("SET NAMES 'utf8mb4'");  2是重点。否则也还是报错。


111.png222.jpg333.jpg44444.jpg

本文标签:

版权声明:若无特殊注明,本文皆为《菜鸟站长》原创,转载请保留文章出处。

本文链接:字符串中包含emoji使用php插入mysql报错解决方案 - https://wlphp.com/?post=308

发表评论

电子邮件地址不会被公开。 必填项已用*标注

福利广告

Fatal error: Uncaught exception 'RedisException' with message 'WRONGPASS invalid username-password pair' in /www/wwwroot/www.wlphp.com/content/templates/FLY/footer.php:264 Stack trace: #0 /www/wwwroot/www.wlphp.com/content/templates/FLY/footer.php(264): Redis->auth('Bsgj0711!') #1 /www/wwwroot/www.wlphp.com/content/templates/FLY/echo_log.php(133): include('/www/wwwroot/ww...') #2 /www/wwwroot/www.wlphp.com/include/controller/log_controller.php(105): include('/www/wwwroot/ww...') #3 /www/wwwroot/www.wlphp.com/include/lib/dispatcher.php(77): Log_Controller->displayContent(Array) #4 /www/wwwroot/www.wlphp.com/index.php(13): Dispatcher->dispatch() #5 {main} thrown in /www/wwwroot/www.wlphp.com/content/templates/FLY/footer.php on line 264