错误信息 SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F...' for column 'content' at row 1
表示在插入数据时,content
字段的内容包含了一些不支持的特殊字符(如表情符号),导致插入失败。这是因为 MySQL 的 utf8
编码不支持某些四字节的 Unicode 字符,而 utf8mb4
编码则支持所有 Unicode 字符。
解决方法
步骤 1:修改数据库配置文件
-
打开数据库配置文件: 打开
application/database.php
文件。 -
修改数据库编码: 将数据库配置文件中的编码设置为
phputf8mb4
。return [ // ... 'charset' => 'utf8mb4', // 修改这里 // ... ];
步骤 2:执行 SQL 语句修改表结构
-
登录 MySQL 数据库: 使用命令行工具登录 MySQL 数据库。
shmysql -u your_username -p
-
选择数据库: 选择对应的数据库。
sqlUSE your_database_name;
-
修改表结构: 执行 SQL 语句,将
sqlcontent
字段的编码改为utf8mb4
。ALTER TABLE your_table_name MODIFY COLUMN content TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
如果有多个表需要修改,可以逐一执行上述命令。
步骤 3:使用工具执行 SQL 脚本
如果您不熟悉 SQL 语句,可以使用工具来执行 SQL 脚本。具体步骤如下:
-
下载并解压 SQL 脚本: 下载并解压提供的 SQL 压缩包。
-
执行 SQL 脚本: 在易优 CMS 的插件中执行 SQL 脚本。
- 进入易优 CMS 后台。
- 找到并打开「易优系统助手」插件。
- 在插件中上传并执行解压后的 SQL 脚本文件。