【发布时间】:2016-01-28 15:05:39
【问题描述】:
更新查询不适用于 GET
$key = mysql_real_escape_string($_GET['key']) ;
$pass = mysql_real_escape_string(trim($_POST['pass'])) ;
$key1="UPDATE login SET pass = '" . $pass . "' WHERE
(key_id = '" . $key . "')";
变量是这样传递的newpassword.php?key=5384f
回显 $key;变量不产生任何结果?有什么问题?
由于某种原因,它正在更新所有其他密码,除了存在密钥的密码。
【问题讨论】:
-
尝试删除 WHERE 子句中的 () 并且请不要使用
mysql_*函数,它们在 PHP 7 中被删除了!! -
基本调试:您是否尝试
echo $key1来查看您生成的查询是什么样的?永远不要假设你的 sql 语法是正确的,或者查询成功了。 -
请stop using
mysql_*functions。 These extensions 已在 PHP 7 中删除。了解PDO 和 MySQLi 的 prepared 语句并考虑使用 PDO,it's really pretty easy。 -
请使用 PHP 的built-in functions 来处理密码安全问题。如果您使用的 PHP 版本低于 5.5,则可以使用
password_hash()compatibility pack。 -
@Daan:呃,完全错误。您可以在 POST 请求中包含查询(又名 GET)变量。但是,如果通过 get 获取 url,则不能有 POST 数据。
标签: php mysql get sql-update