我试图通过MySQL和php更新表中的某些值,但我无法工作:这是我的代码:
$update = "UPDATE $table
SET `active`='1' AND `title`='Disabled By Moderator'
WHERE `id`='".$ad_id."' LIMIT 1";
答案 0 :(得分:3)
更新多个列时,请用逗号分隔。
$update = "UPDATE $table SET `active`='1' , `title`='Disabled By Moderator' WHERE `id`='".$ad_id."' LIMIT 1";
它在1
列上更新0
或active
的原因是因为该语句正在执行布尔运算。当前语句中唯一受影响的列只是列Active
。列title
是布尔操作的一部分。
您的更新语句如果已分组,
UPDATE $table
SET active = (1 AND (title = 'Disabled By Moderator'))
WHERE id= 'val'
LIMIT 1
作为旁注,如果变量的值( s )来自外部,则查询易受SQL Injection
攻击。请查看下面的文章,了解如何防止它。通过使用PreparedStatements
,您可以摆脱在值周围使用单引号。