在 MySQL 中将值设置为 NULL

如果我提交的表单中的文本框中没有任何内容,我希望将值设置为 NULL。我该怎么做? 我已经尝试插入 'NULL',但这只是将单词 NULL添加到字段中。

我不确定我应该为此提供什么代码,我只是在编写一个更新查询。

431578 次浏览

不要把 NULL放在你的更新语句的引号里,这样应该可以:

UPDATE table SET field = NULL WHERE something = something

使用 NULL(不带引号)。

UPDATE users SET password = NULL where ID = 4
UPDATE MyTable
SET MyField = NULL
WHERE MyField = ''

你可能引用了“ NULL”。 NULL 是 MySQL 中的一个保留字,可以插入/更新而不用引号:

INSERT INTO user (name, something_optional) VALUES ("Joe", NULL);
UPDATE user SET something_optional = NULL;
if (($_POST['nullfield'] == 'NULL') || ($_POST['nullfield'] == '')) {
$val = 'NULL';
} else {
$val = "'" . mysql_real_escape_string($_POST['nullfield']) . "'";
}


$sql = "INSERT INTO .... VALUES ($val)";

如果在查询中使用 'NULL',那么只需要插入一个4个字符的字符串。如果没有引号,NULL就是实际的空值。

应该插入 null,而不是 'NULL'的字符串。

假设该列允许空设置,

$mycolupdate = null; // no quotes

应该能行

这里给出的答案是好的,但我仍然在努力发布 NULL,而不是在 mysql 表零。

最后,我注意到问题出现在我正在使用的插入查询中

   $quantity= "NULL";
$itemname = "TEST";

目前为止还不错。

我的插入查询很糟糕。

   mysql_query("INSERT INTO products(quantity,itemname)
VALUES ('$quantity','$itemname')");

我更正了要读取的查询。

   mysql_query("INSERT INTO products(quantity,itemname)
VALUES ('".$quantity."','$itemname')");

所以 $amount 在主字符串之外。 我的 sql 表现在接受记录 null 数量而不是0

您遇到的问题很可能是因为 mysql 区分了大写的 null 和小写的 null。

因此,如果您使用带有 null 的 update 语句,那么它将无法工作。如果将它设置为 NULL,那么它就可以正常工作。

谢谢。