+ -
当前位置:首页 → 问答吧 → 关于PHP+MYSQL开发,插入空值!急!急!急!

关于PHP+MYSQL开发,插入空值!急!急!急!

时间:2011-11-15

来源:互联网

在提交表单数据到数据库的时候,碰到难题。
1、当碰到数值型数据或者日期型数据为空的时候,会提示错误:Query was empty。数据无法插入。
2、在页面加入代码:$sql="SET SESSION sql_mode=NO_ZERO_IN_DATE";
      不会提示"Query was empty"的错误,但是数值型数据或者日期型数据为空的时候,插入0。
应该怎样才能实现表单提交数据的时候,为空的时候就插入NULL?
注:MYSQL里设置默认为NULL。

作者: chen200912315   发布时间: 2011-11-15

字段设置缺省值就好了。

alter table bbb add `type`        tinyint(1)     unsigned    NOT NULL DEFAULT 'NULL';

作者: 代小炫   发布时间: 2011-11-15

`dateline`          int(10)         unsigned    NOT NULL    DEFAULT 'NULL';
引用:
原帖由 代小炫 于 2011-11-15 10:39 发表
字段设置缺省值就好了。

alter table bbb add `type`        tinyint(1)     unsigned    NOT NULL DEFAULT 'NULL';

作者: 代小炫   发布时间: 2011-11-15

引用:
原帖由 代小炫 于 2011-11-15 10:41 发表
`dateline`          int(10)         unsigned    NOT NULL    DEFAULT 'NULL';
字段的默认值就是NULL,字段的值是根据表单的变量更改的,可能为空也可能不为空。

作者: chen200912315   发布时间: 2011-11-15

我使用echo打印插入数据库的代码:
Insert hand_text(trans_date,group_num,class_num,oper,line_num,hand_text,equ_mat_stop_b,equ_mat_stop_e,equ_fau_stop_b,equ_fau_stop_e,debug_stop_b,debug_stop_e,expected_stop_b,expected_stop_e,change_stop_b,change_stop_e,retest,wip,other,createdby,createdate) values('2011-11-15','2','Z','去PSG','4','11','','','','','','','','','','','','','','admin','2011-11-15 10:51:44') 。
显示提交的是空值,但是到数据库就变成0。

作者: chen200912315   发布时间: 2011-11-15

你把该字段的结构发我看下。

作者: 代小炫   发布时间: 2011-11-15

请看附件图片,为数据库结构
未命名1.jpg(145.04 KB)

2011-11-15 11:03

作者: chen200912315   发布时间: 2011-11-15

你看,你的缺省值都没加。。。额外就是缺省值 default

作者: 代小炫   发布时间: 2011-11-15

引用:
原帖由 代小炫 于 2011-11-15 11:17 发表
你看,你的缺省值都没加。。。额外就是缺省值 default
大哥,你有没有搞错啊?额外只有两个值,一个是空,一个是auto_increment,哪里可以设置缺省值了?

作者: chen200912315   发布时间: 2011-11-15

默认才是设置缺省值的吧、

作者: chen200912315   发布时间: 2011-11-15

你建立表字段的时候,设置缺省值default,比如缺省值是0,插入数据的时候,该字段没值,他就会存0,如果有值,就插入该值。

作者: 代小炫   发布时间: 2011-11-15