首页 > 解决方案 > SQL 突发问题 - 一般错误:1364 字段没有默认值

问题描述

所以我有一个服务器列表作为网站 - 无处不在 - 当您尝试添加新服务器时,它会给出错误 -

Array ( [success] => [error-codes] => Array ( [0] => missing-input-secret ) ) 未处理的异常。SQLSTATE [HY000]:一般错误:1364 字段“ServerVotes”没有默认值您可以在日志中找到错误。

我继续在 phpymadmin 中为它设置了一个默认值,它要求提供更多东西的默认值 - 在我设置它之后,它给我的数据库带来了一些问题。有什么想法可能是这个问题的根源以及我可以在哪里尝试解决它?

标签: phpsql

解决方案


您的问题的根源是您的 MySQL 版本已更新到 5.7(或更高版本)或者现在正在使用“ SQL Strict ”模式,因此顾名思义,您需要更新数据设置方式,所以它适合严格的标准。

1)
一个(不明智的)解决方法是将服务器上的MYSQL设置更改为(暂时)关闭严格模式,然后在重新打开之前更正您的数据以适应新的严格模式。

通常,严格模式好的阅读材料)包括:

  • 空值应该是null
  • 无效日期必须null
  • 所有值都应该有一个default设置(这是你的错误)。
  • 超过列行长度的数据现在将导致插入失败而不是中断(例如:插入的数据为 20 chrs,列长度为VARCHAR(15))。因此,在插入/更新之前必须检查列长度。
  • GROUP BY 变得更加繁琐。

2)
您还可以查找此特定的MySQL 错误代码,这将指导您解决此问题。

3)
此外,您需要在 PHP 数据库接口类/代码中正确处理由此导致的异常

4)您可以从您的MySQL 错误日志和可能的PHP 错误日志
中获得更多信息。


推荐阅读