php - 为什么某些 MySQL 字段现在需要默认值?

标签 php mysql database migration webserver

我正在为一家公司将系统从旧服务器复制到新(呃)服务器,我没有参与以前系统的开发。他们有一个当前的(复杂的)网页,可以将记录插入数据库,但我并不完全理解。但是,每个页面的代码和数据库设置是完全一样的。当我尝试插入未完成的表格(在我的版本中)时,我得到 Field 'invoiceNo' doesn't have a default value 而在以前的系统上提交相同的未完成表格将创建(不完整)数据。

我已经检查了 culprit 字段的设置,它被设置为 Not Null,默认值为“Null”。两个数据库设置相同,那么为什么相同的插入数据被不同地处理?

MySQL 旧版本:5.0.41-community-nt

新的MySQL版本:5.5.20

旧的 MySQL 管理版本:1.2.12

新的 MySQL 管理版本:1.2.17

抱歉,如果听起来我不太清楚我在说什么 - 事实上我不知道,因为旧系统对我来说很陌生,而且它庞大而复杂。不过可以回答任何问题。

最佳答案

可能是新服务器设置为“严格”,或者在引入新版本时导致向后兼容性中断。

您的问题是虽然该字段期望“不为空”,但是您提供的是空值(即不向其提供设置期望的数据)如果您将此字段更改为默认为“0”,则空字段将默认为 0,数据应该按预期添加。 (但是,如果该字段期望“非空”,则您不应该提交“空”,因此在使用默认值=0 对其进行黑客攻击之前,我会先查看其路由原因!)

关于php - 为什么某些 MySQL 字段现在需要默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11615863/

相关文章:

php - 变量转储不显示

php - 有没有更好的方法来处理一个 300,000 行的文本文件数据并将其插入 MySQL?

c# - 如何编写外部连接字符串配置文件并让我的 C# 应用程序识别和读取它?

php - 使用PHP将PDF另存为blob吗?

php - 通过curl在PHP中获取用户个人资料图像不起作用

linux下php从串口读取数据

php - 处理类中的错误,我应该使用什么方法?

python - 如何使用 SQLAlchemy 将成批的条目提交到 SQL 数据库中以防止出错?

mysql - Symfony 教义 : emojis are not stored

php - 这是在 PHP 中缓存数据的好方法吗?