SQLSTATE[HY000]_ General error_ 1366 Incorrect string value_ '_xF0_x9F...' for column 'content' at row 1(1)

COS、CDN
wdzsjl 2周前 (01-01) 阅读数 45 #数据库

错误信息 SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F...' for column 'content' at row 1 表示在插入数据时,content 字段的内容包含了一些不支持的特殊字符(如表情符号),导致插入失败。这是因为 MySQL 的 utf8 编码不支持某些四字节的 Unicode 字符,而 utf8mb4 编码则支持所有 Unicode 字符。

解决方法

步骤 1:修改数据库配置文件

  1. 打开数据库配置文件: 打开 application/database.php 文件。

  2. 修改数据库编码: 将数据库配置文件中的编码设置为 utf8mb4

    php
     
    return [ // ... 'charset' => 'utf8mb4', // 修改这里 // ... ];

步骤 2:执行 SQL 语句修改表结构

  1. 登录 MySQL 数据库: 使用命令行工具登录 MySQL 数据库。

    sh
     
    mysql -u your_username -p
  2. 选择数据库: 选择对应的数据库。

    sql
     
    USE your_database_name;
  3. 修改表结构: 执行 SQL 语句,将 content 字段的编码改为 utf8mb4

    sql
     
    ALTER TABLE your_table_name MODIFY COLUMN content TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

    如果有多个表需要修改,可以逐一执行上述命令。

步骤 3:使用工具执行 SQL 脚本

如果您不熟悉 SQL 语句,可以使用工具来执行 SQL 脚本。具体步骤如下:

  1. 下载并解压 SQL 脚本: 下载并解压提供的 SQL 压缩包。

  2. 执行 SQL 脚本: 在易优 CMS 的插件中执行 SQL 脚本。

    • 进入易优 CMS 后台。
    • 找到并打开「易优系统助手」插件。
    • 在插件中上传并执行解压后的 SQL 脚本文件。
COS、CDN
热门