0

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

我想在提交时将其留空。在数据库上,该列(作为 int)也设置为允许空值。

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

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

4

2 回答 2

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。

于 2012-08-06T02:02:27.473 回答
1

为了NULL使用 php 在 MySQL 中插入值,您需要这样做:

INSERT INTO table (field,field2) VALUES (NULL,3)

在你的情况下,试试这个:

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

更多关于这个链接

于 2012-08-06T03:11:15.373 回答