如果在我提交的表单中没有放入任何内容,我希望将值设置为NULL
。我怎样才能做到这一点?
我尝试插入'NULL'
,但这只是将NULL
添加到字段中。
我不确定我应该为此提供什么代码,我只是在写一个UPDATE查询。
答案 0 :(得分:220)
请勿在更新语句中将NULL
放在引号内。这应该有效:
UPDATE table SET field = NULL WHERE something = something
答案 1 :(得分:16)
你可能正在引用'NULL'。 NULL是MySQL中的保留字,可以不带引号插入/更新:
INSERT INTO user (name, something_optional) VALUES ("Joe", NULL);
UPDATE user SET something_optional = NULL;
答案 2 :(得分:10)
UPDATE MyTable
SET MyField = NULL
WHERE MyField = ''
答案 3 :(得分:6)
if (($_POST['nullfield'] == 'NULL') || ($_POST['nullfield'] == '')) {
$val = 'NULL';
} else {
$val = "'" . mysql_real_escape_string($_POST['nullfield']) . "'";
}
$sql = "INSERT INTO .... VALUES ($val)";
如果您将'NULL'
放入查询中,那么您只需插入一个4个字符的字符串。如果没有引号,NULL
就是实际的空值。
答案 4 :(得分:5)
您应该插入null
,而不是'NULL'
。
答案 5 :(得分:4)
使用NULL
(不带引号)。
UPDATE users SET password = NULL where ID = 4
答案 6 :(得分:3)
假设列允许空值设置,
$mycolupdate = null; // no quotes
应该做的伎俩
答案 7 :(得分:2)
这里给出的答案很好,但我仍然在努力发布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')");
所以$ quantity在主字符串之外。 我的sql表现在接受记录空数而不是0
答案 8 :(得分:2)
你遇到的问题很可能是因为mysql区分用大写字母写的null和用小写字母写的null。
因此,如果您使用带有null的update语句,则无效。如果将其设置为NULL,则可以正常工作。
感谢。