Php mySQL查询语句

Php mySQL查询语句,php,mysql,Php,Mysql,我在输出的$sql语句上有一个错误 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行附近要使用的正确语法。这是指更新用户集激活键语句 $query = "SELECT * FROM users"; $result = mysql_query($query) or die(mysql_error()); while($row = mysql_fetch_array($result)){ if ($queryString == $row["ac

我在输出的$sql语句上有一个错误


您的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());} 
}
 }
我不知道为什么语法是错误的

$query = "UPDATE `users` SET `activationkey` = '', status='activated' WHERE `id` = '$row['id']'";
提示:我建议保护您的id,因为sql注入可以在该查询中完成。我的意思是,当我说WHERE id='$row['id']'时,使用WHERE id=int$row['id']],
这样可以确保在该查询中只给出一个整数。如果是字符串us mysql\u real\u escape\u string$row['string']

除了您的问题之外,您应该使用mysqli或PDO。检查PDUpdate users SET activationkey=,status='activated',其中id=Oh,我从$row[id]中什么也没有得到。我的错误是,在我的表中,它是userid,而不是id。$row[userid]现在我得到了值。