mySQL查询语句

时间:2012-05-02 19:11:51

标签: php mysql

输出上的$ sql语句出错了。

您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第1行“'附近使用正确的语法这是指UPDATE用户SET激活密钥语句。

  $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());} 
}
 }

我不知道为什么语法错了。

1 个答案:

答案 0 :(得分:0)

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

提示:我建议保护您的ID,因为可以在该查询中执行sql注入。我的意思是说WHERE id ='$ row ['id']'的瞬间,使用WHERE id =(int)($ row ['id']), 这样可以确保在该查询中只给出一个整数。如果它是一个字符串我们mysql_real_escape_string($ row ['string'])