1

我正在编写一个登录系统,如果他们输入的用户名不在我的数据库中,我会遇到一些错误处理问题。我开始怀疑这与我准备好的陈述有关。

当用户提交表单时,我调用我的检查登录函数,该函数接收用户信息,对其进行清理,然后使用它在数据库中为他们提取信息。

我的一些代码:

$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() 。如果用户名正确但密码不正确,则会调用它。

我假设它一定与我做准备好的陈述的方式有关,但我不知道是什么原因造成的。如果没有返回结果,它会跳出代码吗?

任何帮助将不胜感激!

4

0 回答 0