MySQL utf8mb4:存储表情符号时发生错误
尝试使用 utf8mb4 编码将包含表情符号的名称保存到 MySQL 数据库时遇到错误。该问题源于全局设置和您的特定数据库之间的数据库特定变量之间的差异。
数据库配置验证
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
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中文网其他相关文章!