MySQL 错误 'Incorrect string value' 解决方法

在使用 MySQL 数据库时,经常会遇到 'Incorrect string value' 错误,例如:

INSERT INTO customerinfo(`客户编号`,`客户姓名`,`客户性别`,`身份证号码`,`客户联系电话`,`客户类型`,`备注信息`) VALUES(124424,'阿飞','男',25524555544,15844582,'你们没打','无情')

1366 - Incorrect string value: '\xE9\x98\xBF\xE9\xA3\x9E' for column '客户姓名' at row 1 时间: 0s

这个错误通常是由于数据库字符集与实际插入的值不匹配导致的。

原因分析:

  • 数据库字符集不支持该值的编码:在这个例子中,'客户姓名' 列的值是中文字符'阿飞',但是数据库字符集可能不支持该字符编码。

解决方法:

  1. 确认数据库字符集:

    使用以下 SQL 语句查询当前数据库的字符集:

    SHOW VARIABLES LIKE 'character_set_database';
    

    如果结果不是 utf8mb4utf8,则需要修改数据库字符集。

  2. 修改数据库字符集:

    使用以下 SQL 语句修改数据库字符集:

    ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    

    注意: database_name 替换为您的数据库名称。

  3. 修改数据表字符集:

    使用以下 SQL 语句修改数据表的字符集:

    ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    

    注意: table_name 替换为您的数据表名称。

  4. 使用合适的编码插入数据:

    在插入数据时,确保使用与数据库字符集一致的编码。例如,使用 utf8mb4utf8 编码插入中文字符。

总结:

通过确认数据库字符集,并根据需要修改数据库字符集和数据表字符集,以及使用合适的编码插入数据,就可以解决 'Incorrect string value' 错误。


原文地址: https://www.cveoy.top/t/topic/nP8A 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录