在php / mysql中更新多行/列

时间:2013-12-22 18:08:06

标签: php mysql sql mysqli

我有以下一行:

$reset = "UPDATE pidgeon SET obt='" . $hour . "' WHERE tag='" . $tag . "'";

哪个更新就好了。但是我需要更新一个额外的行(kill)并且我不断收到语法错误。我尝试了以下内容:

$reset = "UPDATE pidgeon SET obt='" . $hour . "', kill='1' WHERE tag='" . $tag . "'";

$reset = "UPDATE pidgeon SET kill='1', obt='" . $hour . "' WHERE tag='" . $tag . "'";

$reset = "UPDATE pidgeon SET obt='" . $hour . "', kill='" . $num . "' WHERE tag='" . $tag . "'";

我甚至完成了2个单独的UPDATE查询,我得到了相同的语法错误消息。我把它缩小到系统遇到 kill 行的问题,但我不确定是什么问题。我已经尝试将 kill 设置为INT,SMALLINT,BOOL,甚至是CHAR,并尝试使用't / f'作为它的值。我仍然遇到语法错误。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

KILL是一个reserved keyword,所以你必须将它包含在反引号中,如下所示:

$reset = sprintf("UPDATE pidgeon SET `kill`='1', obt='%s' 
WHERE tag='%s'", $hour, $tag);

答案 1 :(得分:0)

Kill实际上是一种语法,你不能直接使用它们。

只需用其他名称替换kill