问题:
用户在尝试通过 phpMyAdmin 将值插入具有日期列的表时遇到错误,尽管通过网站成功插入。显示错误消息:“错误的日期值:'0000-00-00'”。
分析:
错误的根本原因与更改有关从 MySQLnd 5.0.12 升级到 5.7.11 后,在 MySQL 的 SQL 模式下。在 MySQL 5.7 中,默认启用严格模式,该模式强制执行更严格的数据验证规则。日期列的默认值“0000-00-00”违反了这些规则,导致错误。
解决方案:
要解决问题并允许插入“0000-00-00”作为有效日期值,必须禁用严格模式。这可以通过执行以下查询来实现:
SET GLOBAL sql_mode = '';
其他信息:
启用严格模式通过对数据类型和值强制执行特定规则来确保数据完整性。但是,当尝试插入不严格遵守这些规则的数据时,它也可能会导致错误。通过禁用严格模式,用户可以绕过这些检查并允许插入“0000-00-00”等数据,这在某些情况下可能有效。
需要注意的是,如果数据完整性对于在您的应用程序中,您应该仔细评估禁用严格模式的影响。考虑实施自定义验证和错误处理机制,以确保无效数据不会存储在数据库中。
以上是为什么 MySQLnd 升级后我的 MySQL INSERT 查询失败并显示'错误的日期值:'0000-00-00'”?的详细内容。更多信息请关注PHP中文网其他相关文章!