2012-08-06 120 views
0

我有這個<input type="text" name="Fax" id="faxbox" maxlength="9" value="<?php echo $row['Fax'] ?>" />更新爲空白字段條目,MySql將其顯示爲零

我想在提交時留空。在數據庫上,該列(如int)被設置爲允許空值。

但是當我提交時,我的空/空字段被MySql轉爲0(零)。我想讓NULL看起來爲0.

我該怎麼辦?我嘗試if(empty($_POST['Fax'])){$Fax=NULL;},但不會工作。

回答

1

爲了在使用PHP MySQL的插入NULL價值,你需要做的是這樣的:

INSERT INTO table (field,field2) VALUES (NULL,3) 
你的情況

,試試這個:

$Fax = !empty($Fax) ? "'$Fax'" : "NULL"; 
INSERT INTO tableName (Fax) VALUES ($Fax); 

more on this link

1

您需要實際使用字符串null,例如

$Fax = 'NULL'; 

如果您在任何位置的字符串上下文中使用它,PHP null將被轉換爲空字符串。


後續:

如果您有:

$Fax = null; 
$sql = "INSERT INTO .... VALUES ($Fax)"; 

你最終

INSERT INTO ... VALUES() 

因爲PHP空轉變爲一個空字符串。但如果你有

$Fax = 'null'; // a string whose contents is the word 'null' 

然後查詢語句實際上將

INSERT INTO ... VALUES (null) 

,因爲該字符串的值是空字,然後將被視爲一個SQL空。

+0

我的傳真列在DBase被設置爲INT。對不起,如果我不清楚,但我想要的,是從數據庫中保存一個表單的一些數據和其中一個entrys是空的,但MySQL保存爲0.我需要該MySQL保存爲NULL – user1148875 2012-08-06 02:15:35

+0

@ user1148875:見上面的編輯。 – 2012-08-06 02:58:16