我想用一个代码更新2行或更多行,这是我现在得到的。使用一个查询在MySQL中更新2列或更多列
mysql_query("UPDATE users SET auth='yes' AND authtime='$time' WHERE username='$_GET[username]'");
在auth = '是' 是0出于某种原因,并authtime '$时间' 并没有从没有改变到1368135045
谁能帮助?
我想用一个代码更新2行或更多行,这是我现在得到的。使用一个查询在MySQL中更新2列或更多列
mysql_query("UPDATE users SET auth='yes' AND authtime='$time' WHERE username='$_GET[username]'");
在auth = '是' 是0出于某种原因,并authtime '$时间' 并没有从没有改变到1368135045
谁能帮助?
您在UPDATE
中有语法错误。
变化:
UPDATE users SET auth='yes' AND authtime='$time' WHERE username='$_GET[username]'
到:
UPDATE users SET auth='yes', authtime='$time' WHERE username='$_GET[username]'
要更改一个以上的列的值,使用逗号分隔符列分配之间,是这样的:
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
柱。 (这就是你的语句将值分配给的唯一列。)
试试这个,将工作肯定
UPDATE users SET auth='yes' , authtime='$time' WHERE username='$_GET[username]'
它是2个或更多*表*或*行* ...!? –
@Ravinder:这是两个_columns_。 – spencer7593
['可爱...'](http://stackoverflow.com/q/60174/) –