输出上的$ 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());}
}
}
我不知道为什么语法错了。
答案 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'])