使用空白字段条目更新,MySql将其显示为零

时间:2012-08-06 01:57:42

标签: php mysql forms

我有<input type="text" name="Fax" id="faxbox" maxlength="9" value="<?php echo $row['Fax'] ?>" />

我想在提交时留空。在Data Base上,该列(作为int)也设置为允许空值。

但是当我提交时,我的空/空字段被MySql转为0(零)。我希望它显示为NULL而不是0。

我该怎么办?我尝试if(empty($_POST['Fax'])){$Fax=NULL;}但不会工作。

2 个答案:

答案 0 :(得分:1)

您需要实际使用字符串null,例如

$Fax = 'NULL';

如果你在任何地方的字符串上下文中使用它,那么php null将被转换为空字符串。


随访:

如果你有:

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

你最终得到了

INSERT INTO ... VALUES ()

因为PHP null被转换为空字符串。但如果你有

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

然后查询语句实际上是

INSERT INTO ... VALUES (null)

因为字符串的值是单词null,然后将其视为sql null。

答案 1 :(得分: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