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