我有这个<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;}
但不会工作。
您需要实际使用字符串 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。
为了NULL
使用 php 在 MySQL 中插入值,您需要这样做:
INSERT INTO table (field,field2) VALUES (NULL,3)
在你的情况下,试试这个:
$Fax = !empty($Fax) ? "'$Fax'" : "NULL";
INSERT INTO tableName (Fax) VALUES ($Fax);