我已经遇到了MYSQL中的一个奇怪事情,这证明是非常令人费解的。mysql/PHP:更新空int字段插入值0
我正在使用sql语句更新现有记录。所有的更新工作正常,除非当它到达邮政编码,如果zip的值是空的,它会插入一个0.如果该字段确实有一个值,它插入正确的值没有任何问题。
zip字段的数据类型是int(11)。
这里是查询SQL语句:
$sql= "UPDATE memberinfo SET firstname = '$firstname', lastname = '$lastname', zipcode='$zipcode', emailadr='$emailadr' WHERE memberid= '$memberid'";
当您在更新,如果邮政编码为空之前呼应了这一点,它显示zipcode = '',
的0过得去MYSQL响应的东西或其他插入。
我试着删除zip值和MYSQL周围的撇号抛出一个错误,所以这不是一个修复。
有没有人跑过这个或者你能提出一个解决方案?
感谢您的任何建议。
它进入一个零因为你将类型设置为int。为了解决这个问题,将类型更改为varchar,并允许它为空 – 2012-07-18 21:40:33
该字段在更新之前为空。因为记录最初创建时未指定zipcode值。是否习惯使zipcodes varchar字段? – user1260310 2012-07-18 21:42:36
我使zipcode字段varchar,因为有些人添加破折号或字母到他们的zip。并与int,它不会工作。如果你想要它是int,但是是一个空值。不更新邮编='',只是离开了。 – 2012-07-18 21:43:54