你的位置:
问答吧
-> PHP
-> 问题详情
php如何向mysql字段中写入NULL的值?
修改房屋信息时,有一个字段是楼层总数floorall,是int字段,允许空
当修改信息时,如果输入了这个字段的值,则向数据库中写入值,如果没有输入值,则向数据库中写入NULL
怎么实现?
我是这样写的
if($floorall==''){$floorall=NULL;}
$db->query("updata tabel set floorall ='$floorall'");
可是这样写入的值是0而不是NULL
作者: tgw2000
发布时间: 2009-11-19
updata tabel set floorall = null
[ 本帖最后由 Enoch 于 2009-11-19 18:01 编辑 ]
作者: Enoch
发布时间: 2009-11-19
to:Enoch
你这样写,当floorall有值时,怎么办,这样有值时,也写入空了
作者: tgw2000
发布时间: 2009-11-19
int字段 能写入NULL值? 表设计有问题
作者: wuleying
发布时间: 2009-11-19
tgw2000 :
if($floorall==''){$floorall= 'NULL';}
$db->query("updata tabel set floorall = $floorall ");
银子:
我也觉的怪 也许是为了兼容老程序
作者: Enoch
发布时间: 2009-11-20
尽量让数据库自己完成,比如允许空这事,不考虑int啥的类型,那你设计的时候就用default
然后程序中,为空的时候就不需要update了
另外记一下table这个单词。
作者: ywodin
发布时间: 2009-11-20
to:ywodin
比如这个楼层是int型的,非必填字段,设计表的时候,是允许空
用户加信息时,floorall填写的是数字2,发布后数据库中floorall的值为2
当修改信息时,用户想把floorall清空了,这时再提交,用你的方法,为空时,不进行update
floorall字段了,那数据库中floorall的值不还是2吗,并没有修改啊
如果为空时,进行update floorall字段,则提交后,数据库中floorall值为0
信息读出来后,会显示楼层总数:0层
除非显示信息时,做判断,if($floorall==0){$floorall='';}
可是0在我的程序中还有其它的意义,不想用这种方法
[ 本帖最后由 tgw2000 于 2009-11-20 13:51 编辑 ]
作者: tgw2000
发布时间: 2009-11-20
允许为空,那没有值插入的时候就是NULL了,没必要去特意写NULL。
要清空的时候就使用set 字段=NULL就行了。
作者: 帅青蛙
发布时间: 2009-11-20