Sql查询更新和设置

时间:2013-04-26 17:45:24

标签: mysql sql

我试图通过MySQL和php更新表中的某些值,但我无法工作:这是我的代码:

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

1 个答案:

答案 0 :(得分:3)

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

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

它在1列上更新0active的原因是因为该语句正在执行布尔运算。当前语句中唯一受影响的列只是列Active。列title是布尔操作的一部分。

您的更新语句如果已分组,

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

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