mysql - 未捕获的异常 'PDOException',消息为“SQLSTATE[22007] : Invalid datetime format: 1366 Incorrect string value

标签 mysql pdo mariadb

这是我遇到的错误。

PDOException: Uncaught exception 'PDOException' with message 'SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect string value: '\xF0\x9F\x98\xB3' for column 'string' at row 1'

我知道这里的问题。列表使用 utf8utf8 编码无法存储 4 字节字符,因此会出错。解决此问题的一种方法是改用 utf8mb4

我的问题是关于错误消息。我们正在使用 MariaDB。 为什么在错误消息中显示“无效的日期时间格式”?这是一个文本字段。与正在运行的查询中的日期时间无关。

这种“无效的日期时间格式”经常出现在各种错误中,但似乎与错误的实际来源无关。

最佳答案

是的,我以前见过这个。

我想这是 mariadb 方面的错误,所有关于不正确值的错误都被称为“不正确的日期时间值”。

除了有点困惑之外,我看不出这里有什么坏处。请记住这个问题并将其视为“不正确的文本值”

关于mysql - 未捕获的异常 'PDOException',消息为“SQLSTATE[22007] : Invalid datetime format: 1366 Incorrect string value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39750417/

相关文章:

mysql - 删除除细节之外的所有行

php - 使用 PDO 从类中获取数组

php - 通过 PDO 将数据插入 MySQL,尝试使用数组将时间戳与数据一起包含 - 出现错误?

php - 如何用PDO代替MySQL函数?

MySQL 连接两个表并添加一额外列

php - 在 PHP 中设置动态用户级别

python - 实例化 MySQL 数据库类

PHP:使用 mysql_fetch_assoc 时出现问题

mysql - 在 MySQL 中批量更新临时表的插入速度不一致(使用 jdbcTemplate.batchUpdate)

mysql - 在某些列中存储可变大小的字符串列表