无法使用PDO从PHP保存MySQL中的表情符号/表情,但可以从cmd / phpmyadmin中插入它们

经过一番研究,我将字段和表的排序规则转换为utf8mb4_bin

如果我直接通过phpmyadmin将表情符号粘贴到该字段中,或者如果我在命令行中编写查询,那么它可以正常工作。

问题出在网站上。

这是我的PDO配置:

$driver_options = [
    PDO::MYSQL_ATTR_INIT_COMMAND    => "SET NAMES utf8",PDO::ATTR_ERRMODE               => PDO::ERRMODE_EXCEPTION,PDO::ATTR_DEFAULT_FETCH_MODE    => PDO::FETCH_OBJ,PDO::MYSQL_ATTR_FOUND_ROWS      => true
];

$db = new PDO('mysql:host='.$host.';dbname='.$database.';charset=utf8mb4;collation=utf8mb4_unicode_ci',$username,$password,$driver_options);

通过我的网站进行操作,表情符号/表情符号另存为????

要正确保存它们,我还需要做什么?

谢谢

编辑

解决了。如果您在SET NAMES utf8中使用options,它将覆盖Dsn中的charset=utf8mb4,因此在我的情况下,它最终是utf8而不是utf8mb4 >

yezhiyang 回答:无法使用PDO从PHP保存MySQL中的表情符号/表情,但可以从cmd / phpmyadmin中插入它们

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3165195.html

大家都在问