MySQL 中的錯誤代碼 1366 是一種字符編碼問題,該問題通常在執行 INSERT、UPDATE 或其他操作時出現。該錯誤表示字符串值與表的字符集或列字符集不兼容,因此無法插入數據庫中。
ERROR 1366 (HY000): Incorrect string value: '\xE6\xB5\x8B\xE8\xAF\x95' for column 'name' at row 1
上面的代碼片段中,錯誤信息顯示了具體的錯誤信息和行數。錯誤信息中包含的 \xE6\xB5\x8B\xE8\xAF\x95 是一個漢字“測試”的 UTF-8 編碼。在 INSERT 或 UPDATE 操作中如果將此字符串插入到數據庫時會報出 1366 錯誤。
解決方法有兩種:
- 更改表或列的字符集為 utf8mb4,這將允許您使用更廣泛的字符范圍插入到數據庫。您可以使用以下命令來更改表或列:
- 在 INSERT 或 UPDATE 查詢中指定正確的字符集,例如:
ALTER TABLE mytable CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE mytable MODIFY name VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
INSERT INTO mytable (name) VALUES ('測試') COLLATE utf8mb4_unicode_ci;
總之,在出現 1366 錯誤時,您需要確定哪個表或列引起了錯誤,并采取一種適當的解決方案。通過更改字符集或指定正確的字符集,您可以解決這個問題。