我正在编写登录系统,如果他们输入的用户名不在我的数据库中,我在处理错误方面遇到了一些问题。我开始怀疑这是我准备好的陈述。
当用户提交表单时,我会调用我的检查登录功能,该功能会接收用户信息,对其进行清理,然后使用它来为数据库中的信息提取信息。
我的一些代码:
$db = getConnection();// Function that creates a new mysqli db connection
if($db->connect_error){
echo mysqli_connect_error();
exit();
}
$stmt = $db->prepare("SELECT password, client, rootFolder from Users WHERE username = ?");
//$sanUsername is created from the username that is passed into the function
$stmt->bind_param('s',$sanUsername);// Binds the sanitized username to the ?
$stmt->execute();
$stmt->store_result();
$num_rows = $stmt->num_rows;
$stmt->bind_result($pw,$client,$folder);
if($num_rows > 0){
checkPassword stuff
}else{
failedLogin();
}
我的问题是失败如果用户名不在数据库中,则永远不会调用login()。如果用户名正确但密码不正确,则会调用它。
我认为它必须是我正在做我准备好的陈述的方式,但我无法弄清楚可能导致它的原因。如果没有返回结果,它会突破代码吗?
非常感谢任何帮助!