对于登录系统,我想检查用户名和密码是否正确,这是代码(不检查错误等):
$db = @new MySQLi('localhost', 'user', 'pw', 'db');
$sql = 'SELECT
id
FROM
members
WHERE
username = ? AND
password = ?';
$stmt = $db->prepare($sql);
$stmt->bind_param('ss', $username, $password_hash);
$stmt->execute()
$stmt->bind_result($UserID);
现在我想检查是否有结果,在大多数教程中都是这样完成的:
if (!$stmt->fetch()) {
//LOGIN WAS INCORRECT, DO STUFF
} else {
//LOGIN WAS CORRECT, DO STUFF
}
但为什么?它也以这种方式工作:
if (isset($UserID)){
//LOGIN WAS CORRECT, DO STUFF
} else {
//LOGIN WAS INCORRECT, DO STUFF
或者:
if ($UserID != 0){
//LOGIN WAS CORRECT, DO STUFF
} else {
//LOGIN WAS INCORRECT, DO STUFF
那么,最快、最安全的方法是什么?