我正在编写一个登录系统,如果他们输入的用户名不在我的数据库中,我会遇到一些错误处理问题。我开始怀疑这与我准备好的陈述有关。
当用户提交表单时,我调用我的检查登录函数,该函数接收用户信息,对其进行清理,然后使用它在数据库中为他们提取信息。
我的一些代码:
$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();
}
我的问题是如果用户名不在数据库中,则永远不会调用 failedLogin() 。如果用户名正确但密码不正确,则会调用它。
我假设它一定与我做准备好的陈述的方式有关,但我不知道是什么原因造成的。如果没有返回结果,它会跳出代码吗?
任何帮助将不胜感激!