在最近从 MAMP 迁移到 Apache、MySQL 和 PHP 时,执行 INSERT 命令突然导致以下错误:
SQLSTATE[HY000]: General error: 1364 Field 'display_name' doesn't have a default value
此问题是由于 MySQL 默认行为的更改而引起的。在 MySQL 版本 5.6.13 中,经常启用 STRICT 模式,这会强制执行更严格的数据验证规则。因此,没有默认值的字段在插入时不能再留空。
要解决此问题,需要更改 MySQL STRICT 模式设置。有两种可能的解决方案:
临时更改:在 MySQL 控制台中运行以下命令:
SET GLOBAL sql_mode='';
这将暂时禁用 STRICT所有后续查询的模式。
进行上述任一更改后,重新启动 MySQL 服务器,INSERT 命令应该成功执行,并且不会出现“字段没有默认值”错误.
以上是为什么我在 MySQL 严格模式下收到“字段没有默认值”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!