PHP - 如何添加到变量NULL值并保存到数据库中?

时间:2012-12-25 01:32:10

标签: php mysql sql null

我正在尝试将变量设置为NULL

$q = NULL.",";
$q .= 'abc';

并保存到数据库:

mysql_query("INSERT INTO table (col_a, col_b) VALUES (".$q.")")

但这会生成错误消息:

INSERT INTO table (col_a, col_b) VALUES (,'abc')You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ','abc')' at line 2

如何从变量中将NULL保存到数据库中?

4 个答案:

答案 0 :(得分:5)

你可以删除你希望其值为null的列,例如

$q = 'abc';
mysql_query("INSERT INTO table (col_b) VALUES ($q)")

或者如果值是动态的,那么当前代码的唯一问题是您的字符串中没有包含NULL

$q = "NULL,";
$q .= "'abc'";
mysql_query("INSERT INTO table (col_a, col_b) VALUES ($q)")

您的代码容易被SQL Injection攻击,请阅读以下文章,了解如何防范它。

答案 1 :(得分:2)

你正在连接NULL并尝试解析它,在语句中,它实际上会读取:

,abc

而不是预期的

NULL,abc

所以只需在你的陈述中写一个文字“NULL”。

答案 2 :(得分:2)

在查询中传递文字的,未加引号的字符串:

$q = "NULL,";

答案 3 :(得分:2)

$q = "NULL,";
$q .= '"abc"';

为您提供可以包含在查询中的NULL,"abc"

您发布的错误无法来自问题中的代码。abc周围的引号来自何处?你需要将它括在php变量引号内的引号中,以便它们显示在SQL中。