在MySQL中将值设置为NULL

我想要一个值被设置为NULL如果没有什么被放到我提交的forms的文本框中。 我怎样才能做到这一点? 我试过插入'NULL'但是这只是将NULL字添加到字段中。

我不知道我应该提供什么代码,我只是写一个更新查询。

不要把你的update语句中的NULL放在引号内。 这应该工作:

 UPDATE table SET field = NULL WHERE something = something 

你可能会引用'NULL'。 NULL是MySQL中的保留字,可以插入/更新而不用引号:

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

如果将'NULL'放入查询中,则只需插入一个4个字符的string即可。 没有引号, NULL是实际的空值。

你应该插入null ,而不是'NULL'的string。

使用NULL (不包括引号)。

 UPDATE users SET password = NULL where ID = 4 

假设列允许空设置,

 $mycolupdate = null; // no quotes 

应该做的伎俩

你所遇到的问题很可能是因为mysql区分了以大写字母写的空白和小写的空字符。

所以,如果你使用了一个更新语句为空,它将无法正常工作。 如果您将其设置为NULL,它将正常工作。

谢谢。

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

最后我注意到问题是在我使用的插入查询

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

到现在为止还挺好。

我的插入查询是不好的。

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

我更正了查询来阅读。

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

所以$数量在主string之外。 我的SQLperformance在接受logging零数量而不是0