0

我对输出的 $sql 语句有错误。

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '' 附近使用正确的语法“这是指 UPDATE users SET activationkey 语句。

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

我不知道为什么那个语法是错误的。

4

1 回答 1

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'])

于 2012-05-02T20:20:34.187 回答