mySQL 查询语句


mySQL query statement

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

您的 SQL 语法有误;请查看与您的 MySQL 服务器版本对应的手册,了解在第 1 行的"附近使用的正确语法" 这是指更新用户 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());} 
}
 }

我不知道为什么这种语法是错误的。

$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['字符串'])