Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么某些MySQL字段现在需要默认值?_Php_Mysql_Database_Migration_Webserver - Fatal编程技术网

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

Php 为什么某些MySQL字段现在需要默认值?,php,mysql,database,migration,webserver,Php,Mysql,Database,Migration,Webserver,我正在为一家公司将一个系统从一个旧服务器复制到一个新的(呃)服务器,我没有参与以前系统的开发。他们有一个当前的(复杂的)网页,可以将记录插入数据库,我不完全理解它。但是,每个页面的代码和数据库设置完全相同。当我尝试插入未完成的表单(在我的版本上)时,我得到的字段“invoiceNo”没有默认值,而在以前的系统上提交相同的未完成表单将创建(不完整)数据 我已经检查了罪魁祸首字段的设置,它被设置为NOTNULL,默认值为“Null”。这两个数据库的设置相同,那么为什么对相同的插入数据进行不同的处理呢

我正在为一家公司将一个系统从一个旧服务器复制到一个新的(呃)服务器,我没有参与以前系统的开发。他们有一个当前的(复杂的)网页,可以将记录插入数据库,我不完全理解它。但是,每个页面的代码和数据库设置完全相同。当我尝试插入未完成的表单(在我的版本上)时,我得到的
字段“invoiceNo”没有默认值
,而在以前的系统上提交相同的未完成表单将创建(不完整)数据

我已经检查了罪魁祸首字段的设置,它被设置为NOTNULL,默认值为“Null”。这两个数据库的设置相同,那么为什么对相同的插入数据进行不同的处理呢

旧MySQL版本:5.0.41-community-nt

新MySQL版本:5.5.20

旧的MySQL管理版本:1.2.12

新的MySQL管理版本:1.2.17


抱歉,如果听起来我对我在说什么没有太多的线索-事实上,我不知道,因为旧系统对我来说是陌生的,它是巨大而复杂的。但是,您可以回答任何问题。

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


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

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


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

是否为旧数据库中的列
自动增量
?和MySQL v1.2??当然那是不对的。没有什么是自动递增的,其中一个字段是日期,所以不能自动递增。我的错,它是MySQL admin 1.2.12。实际的MySQL版本是旧版本:5.0.41-community-nt,新版本是5.5.20。(都是通过查询浏览器中的select version();获得的)列是否为旧数据库中的
auto_increment
?和MySQL v1.2??当然那是不对的。没有什么是自动递增的,其中一个字段是日期,所以不能自动递增。我的错,它是MySQL admin 1.2.12。实际的MySQL版本是旧版本:5.0.41-community-nt,新版本是5.5.20。(都是通过查询浏览器中的选择版本()获得的)