php - SQL 突发问题 - 一般错误:1364 字段没有默认值
问题描述
所以我有一个服务器列表作为网站 - 无处不在 - 当您尝试添加新服务器时,它会给出错误 -
Array ( [success] => [error-codes] => Array ( [0] => missing-input-secret ) ) 未处理的异常。SQLSTATE [HY000]:一般错误:1364 字段“ServerVotes”没有默认值您可以在日志中找到错误。
我继续在 phpymadmin 中为它设置了一个默认值,它要求提供更多东西的默认值 - 在我设置它之后,它给我的数据库带来了一些问题。有什么想法可能是这个问题的根源以及我可以在哪里尝试解决它?
解决方案
您的问题的根源是您的 MySQL 版本已更新到 5.7(或更高版本)或者现在正在使用“ SQL Strict ”模式,因此顾名思义,您需要更新数据设置方式,所以它适合严格的标准。
1)
一个(不明智的)解决方法是将服务器上的MYSQL设置更改为(暂时)关闭严格模式,然后在重新打开之前更正您的数据以适应新的严格模式。
- 空值应该是
null
- 无效日期必须是
null
- 所有值都应该有一个
default
设置(这是你的错误)。 - 超过列行长度的数据现在将导致插入失败而不是中断(例如:插入的数据为 20 chrs,列长度为
VARCHAR(15)
)。因此,在插入/更新之前必须检查列长度。 - GROUP BY 变得更加繁琐。
2)
您还可以查找此特定的MySQL 错误代码,这将指导您解决此问题。
3)
此外,您需要在 PHP 数据库接口类/代码中正确处理由此导致的异常。
4)您可以从您的MySQL 错误日志和可能的PHP 错误日志
中获得更多信息。
推荐阅读
- ms-access - On Got Focus vbNo 撤消选项按钮适用于点击,但不是箭头
- sql - QRY 对个人结果非常有效,但对大组结果提供了糟糕的数据
- google-cloud-sql - 关于 Google Cloud SQL 性能
- swift - 如何使 SwiftUI 列表自动滚动?
- javascript - 从 URL 获取图像并通过 NodeJS 中的 POST 上传到另一个
- c# - 刷新部分视图并构建查询字符串而不刷新 Asp.Net MVC 5 中的所有页面
- jquery - 使用 ID 变量访问 jQuery 中的输入元素
- css - 如何重写已编译 sass 的导入?
- asp.net-mvc - 控制器中的编辑操作未更新
- php - 用换行符显示数据库条目