我遇到了这段代码的问题:
$loginrequest = $mysqli->prepare(
"SELECT name, password, salt FROM users WHERE name = ? OR email = ?");
$loginrequest->bind_param("ss", $login, $login);
$loginrequest->execute();
$loginrequest->bind_result($name, $encrypted_password, $salt);
while ($loginrequest->fetch()) {
$hash = $this->checkhashSSHA($salt, $password);
if ($encrypted_password == $hash) {
return $name;
}
else {
return false;
}
}
如您所见,我想查看用户登录信息,如果密码正确,我想返回用户名,否则返回false。
但是,我不是必须关闭$mysqli
查询吗?
$loginrequest->close();
$mysqli->close();
因为值$name
仅在while循环中可用(如果我理解正确的话)。我的意思是我之前可以声明一个字符串并将其更改为$name
值,但是有必要关闭它吗?
顺便说一下,我不能使用store_result
,因为PHP版本太旧了。
答案 0 :(得分:0)
while
。这将比较密码和关闭语句:
$loginrequest->fetch();
$loginrequest->close();
$hash = $this->checkhashSSHA($salt, $password);
if ($encrypted_password == $hash)
return $name;
return false;