php:sql update query无法按预期工作

时间:2013-02-21 14:40:44

标签: php mysqli sql-update

我正在使用以下查询

$mysqli->query("UPDATE `edit_users` SET `password` = \"" . hash('sha512', $_POST['change_pw_password']) . "\", `single_login_pw` = NULL WHERE `id` = \"" . $userinfo['id'] . "\"");

结果,这会更改具有特定ID的用户的密码,但会将所有用户的single_login_pw设置为NULL。

知道为什么所有single_login_pws都设置为NULL以及如何解决问题?

编辑:我也尝试使用mysql_query()......这是同样的事情。

2 个答案:

答案 0 :(得分:0)

尝试使用LIMIT

"UPDATE `edit_users` SET `password` = '" . hash('sha512', $_POST['change_pw_password']) . "', `single_login_pw` = NULL WHERE `id` = '" . $userinfo['id'] . "' LIMIT 1"

我还将双引号更改为字符串周围的单引号。

答案 1 :(得分:0)

试试这个

$hash = hash('sha512', $_POST['change_pw_password']);
$uid = $userinfo['id'];
$mysqli->query("UPDATE edit_users SET password = $hash, single_login_pw = NULL WHERE id = $uid");