2013-04-26 62 views
-1

我试图通过MySQL和PHP来更新表中的一些值,但我不能让它工作:这里是我的代码:SQL查询更新和设置

$update = "UPDATE $table 
      SET `active`='1' AND `title`='Disabled By Moderator' 
      WHERE `id`='".$ad_id."' LIMIT 1"; 
+0

之前问问题** ** SO你应该尝试学习**更新语法。**,你会在**不到30秒已经解决了它。** – Luv 2013-04-26 17:52:01

回答

3

更新多个列时,与分离它一个逗号。

$update = "UPDATE $table SET `active`='1' , `title`='Disabled By Moderator' WHERE `id`='".$ad_id."' LIMIT 1"; 

为什么它在active列更新10的原因是因为该语句执行布尔运算。您当前的声明中唯一受影响的列仅为列Active。列title是布尔操作的一部分。

你的更新语句看起来一样,如果它被分组,

UPDATE $table 
SET active = (1 AND (title = 'Disabled By Moderator')) 
WHERE id= 'val' 
LIMIT 1 

一点题外话,查询很容易受到与SQL Injection如果变量的值(小号)从外面走了进来。请看下面的文章,了解如何防止它。通过使用PreparedStatements你可以摆脱使用单引号围绕值。

+1

哇谢谢在1分钟内回复:D你摇滚! – 2013-04-26 17:48:33

+0

更新了一些额外的信息的答案。 – 2013-04-26 18:02:33

+0

执行[正确的SQL转义](http://bobby-tables.com/php)非常重要,否则会发生非常糟糕的事情。 – tadman 2013-04-26 18:06:30