我已經遇到了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