我正在尝试将变量设置为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
保存到数据库中?
答案 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中。