2012-05-02 133 views
0

我在输出上的$ sql语句有错误。mySQL查询语句

您的SQL语法有错误;检查对应于你的MySQL服务器版本的第1" 行使用近“”正确的语法手册这是参照更新用户设置的激活密钥声明。

$query = "SELECT * FROM users"; 

    $result = mysql_query($query) or die(mysql_error()); 

     while($row = mysql_fetch_array($result)){ 

if ($queryString == $row["activationkey"]){ 
$sql="UPDATE users SET activationkey = '', status='activated' WHERE (id = $row[id])"; 

    if (!mysql_query($sql)) { *die('Error: in activation' . mysql_error());} 
} 
} 

我不知道为什么这句法是错误的

+2

'echo $ sql;'please。 – Sampson

+1

除了你的问题,你应该使用mysqli或PDO。查看http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers PDO – simshaun

+0

UPDATE users SET activationkey ='',status ='activated'WHERE(id =)哦,我没有从$ row [id]中得到任何东西。 –

回答

0
$query = "UPDATE `users` SET `activationkey` = '', status='activated' WHERE `id` = '$row['id']'"; 

提示:我建议保护您的ID,因为SQL注入可以在查询完成我的意思是说的即时WHERE id =“$行[”身份证“]”,使用WHERE id =(int)($ row ['id']), 这确保只有一个整数在该查询中给出,如果它是一个stri ng us mysql_real_escape_string($ row ['string'])