我正在尝试使用一个代码在我的MySQL上更新2行或更多行,这就是我现在所拥有的。
mysql_query("UPDATE users SET auth='yes' AND authtime='$time' WHERE username='$_GET[username]'");
auth ='yes'因某种原因为0而且authtime'$ time'没有从no更改为1368135045
有人可以帮忙吗?
答案 0 :(得分:1)
要更改多个列的值,请在列分配之间使用逗号分隔符,如下所示:
UPDATE mytab SET col1 = val , col2 = val WHERE ...
^
+----- comma here
您的查询是有效的语法,并且它正在成功执行。 但您的查询形式为:
UPDATE users SET auth = (expression) WHERE username='$_GET[username]'
问题是查询中有一个AND
关键字,您想要一个逗号分隔符。
正在发生的事情是MySQL正在读取AND
作为分配给列auth
的表达式的一部分。 MySQL正在评估这个表达式:
'yes' AND authtime='$time'
MySQL正在评估它作为布尔表达式,并获取布尔表达式的结果(为FALSE),并将该结果分配给列auth
。 (这是你的陈述赋予值的唯一一栏。)
答案 1 :(得分:1)
试试这个,肯定会有效
UPDATE users SET auth='yes' , authtime='$time' WHERE username='$_GET[username]'
答案 2 :(得分:0)
UPDATE
中存在语法错误。
更改:
UPDATE users SET auth='yes' AND authtime='$time' WHERE username='$_GET[username]'
致:
UPDATE users SET auth='yes', authtime='$time' WHERE username='$_GET[username]'