【发布时间】:2017-02-06 14:32:15
【问题描述】:
这是我得到的错误。
PDOException:未捕获的异常 'PDOException' 带有消息“SQLSTATE[22007]:无效的日期时间格式:1366 错误的字符串值:'\xF0\x9F\x98\xB3' for column 'string' at row 1'
我知道这里的问题。列表使用utf8。 utf8 编码不能存储 4 字节字符,因此会出错。解决此问题的一种方法是改用utf8mb4。
我的问题是关于错误消息。我们正在使用 MariaDB。 为什么会在错误消息中显示“日期时间格式无效”?这是一个文本字段。正在运行的查询中与日期时间无关。
这种“无效的日期时间格式”经常出现在各种错误中,但似乎与错误的实际来源无关。
【问题讨论】:
-
因为 mysql 日期/时间字符串是
yyyy-mm-dd hh:mm:ss。鉴于您的\xF0,您传递的东西甚至远未接近该表格。由于您没有显示您的实际查询,我们无法为您提供任何帮助。 -
Marc B. 所说的。不要将
utf8编码的字符串作为datetime参数发送,仅此而已。 -
如果您确定在执行此查询时没有损坏任何日期,则可能是您遇到了一些使我们的生活更有趣的奇怪错误。它的可重复性如何?你能提供一个独立的例子吗?
-
我们看看
SHOW CREATE TABLE和错误信息中直接涉及的SQL。