【问题标题】:How to solve error inserting into table如何解决插入表中的错误
【发布时间】:2015-12-11 11:34:50
【问题描述】:

我需要修复这个错误。当前 PHP MySQL 库版本 5.1.72 和排序规则是 utf8_general_ci

Error inserting into table: notes: Query Failed: INSERT INTO notes (id,date_entered,date_modified,modified_user_id,created_by,name,file_mime_type,filename,parent_type,parent_id,portal_flag,embed_flag,deleted)

VALUES 
('caff0041-48a4-218d-c596-566a8b42549b','2015-12-11 08:38:26','2015-12-11 08:38:26','e982b37c-4773-11e3-9be9-00215aeeb772','e982b37c-4773-11e3-9be9-00215aeeb772','OutlookEmoji-????.png','image/PNG','OutlookEmoji-????.png','Emails','c1ba0bf7-cb38-701a-270e-566a8b7a23c2',0,0,0): MySQL error 1366: Incorrect string value: '\xF0\x9F\x98\x8A.p...' for column 'name' at row 1

提前致谢。

【问题讨论】:

  • 您的姓名字符问题。将数据库排序规则设为 utf-8
  • @ChetanAmeta 我们已经有了 utf8_general_ci 排序规则。

标签: php mysql database


【解决方案1】:

为您的数据库将数据库排序规则设为utf-8

您收到错误是因为您正在插入 OutlookEmoji-?.png

更改排序规则后,运行查询。

【讨论】:

  • PHP MySQL 库版本 5.1.72,当前排序规则为 utf8_general_ci
【解决方案2】:

您似乎试图在字段名称中插入无效字符:OutlookEmoji-?.png

【讨论】:

  • 是的,但我无法修复,现在数据库没有通过日志中的这个错误连接。
  • 嗨,欢迎来到堆栈溢出。当您发布答案时,您还应该指出可能的解决方案,或者您可以明确声明没有可能的解决方案,另请阅读:stackoverflow.com/help/how-to-answer
【解决方案3】:

This may answer your question。即,

如果您有 MySQL 5.5 或更高版本,您可以将列编码从 utf8 转 utf8mb4。这种编码允许存储的字符 在 UTF-8 中占用 4 个字节。

但是你有 5.1,

虽然您的排序规则设置为 utf8_general_ci,但我怀疑 数据库、表甚至列的字符编码可能是 不同的。它们是独立的设置。

【讨论】:

  • 我现在需要修复这个错误,有什么解决方案可以删除或更改 (OutlookEmoji-?.png) 吗?
  • 如果您插入的注释不重要,请稍后再考虑。但是记录你没有插入的所有笔记。然后,当您有时间升级 mysql 或尝试其中一个答案时。
猜你喜欢
  • 2019-03-12
  • 1970-01-01
  • 2021-12-31
  • 1970-01-01
  • 2019-06-03
  • 2017-02-13
  • 2019-04-07
  • 2020-04-19
  • 2019-05-22
相关资源
最近更新 更多