首页 >数据库 >mysql教程 >为什么我的表情符号没有使用 utf8mb4 保存在我的 MySQL 数据库中?

为什么我的表情符号没有使用 utf8mb4 保存在我的 MySQL 数据库中?

Patricia Arquette
Patricia Arquette原创
2024-12-04 01:34:09363浏览

Why Are My Emojis Not Saving in My MySQL Database Using utf8mb4?

MySQL utf8mb4:存储表情符号时发生错误

尝试使用 utf8mb4 编码将包含表情符号的名称保存到 MySQL 数据库时遇到错误。该问题源于全局设置和您的特定数据库之间的数据库特定变量之间的差异。

数据库配置验证

  1. 验证全局数据库变量使用以下命令将“character_set”设置为“utf8mb4”,将“collat​​ion”设置为“utf8mb4_unicode_ci”查询:
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
  1. 对于相关数据库,请确保上述变量也分别设置为“utf8mb4”和“utf8mb4_unicode_ci”,在 phpMyAdmin 中使用相同的查询。

my.cnf配置

检查您的 my.cnf 文件以确保存在以下设置:

[mysql]
default-character-set = utf8mb4

[mysqld]
...
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

mysqli/PDO 设置

如果如果您通过 mysqli/PDO 连接,请设置以下内容options:

$mysqli->set_charset('utf8mb4');

$dbh->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, 'SET NAMES utf8mb4');

潜在解决方案

执行 SQL 语句“SET NAMES utf8mb4;”在 MySQL 会话中将客户端、连接和结果字符集设置为 utf8mb4,可能会解决该问题。

以上是为什么我的表情符号没有使用 utf8mb4 保存在我的 MySQL 数据库中?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn