我正在使用以下查询
$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()......这是同样的事情。
答案 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");