-1

我正在尝试通过 MySQL 和 php 更新表中的一些值,但我无法正常工作:这是我的代码:

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

1 回答 1

3

更新多列时,用逗号分隔。

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

它正在更新10在列active上的原因是该语句正在执行布尔运算。当前语句中唯一受影响的列是 only column Active。列title是布尔运算的一部分。

如果它被分组,您的更新语句将看起来像,

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

作为旁注,SQL Injection如果变量的值(s)来自外部,则查询很容易受到攻击。请看下面的文章,了解如何预防。通过使用PreparedStatements,您可以摆脱在值周围使用单引号。

于 2013-04-26T17:46:07.650 回答