Php mySQLi调试问题

Php mySQLi调试问题,php,mysqli,Php,Mysqli,我实际上有这个PHP代码,我用它来获取我的数据库信息 function searchUserEmail($username, $raw_email){ //Prepare Statements $query = "SELECT * FROM users WHERE username = ?"; $query2 = "SELECT * FROM users WHERE email = ?"; //Sanitize Input $user = $this-&g

我实际上有这个PHP代码,我用它来获取我的数据库信息

function searchUserEmail($username, $raw_email){
    //Prepare Statements
    $query = "SELECT * FROM users WHERE username = ?";
    $query2 = "SELECT * FROM users WHERE email = ?";
    //Sanitize Input
    $user = $this->conn->real_escape_string($username);
    $email = $this->conn->real_escape_string($raw_email);

    if($stmt = $this->conn->prepare($query)){
        $stmt->bind_param('s', $user);
        $stmt->execute();
        if($stmt->num_rows > 0){
            $stmt->close();
            return true;
        }
    }

    if($stmt = $this->conn->prepare($query2)){
        $stmt->bind_param('s', $email);
        $stmt->execute();
        if($stmt->num_rows > 0){
                $stmt->close();
        return true;
        }
    }
    return false;
}
我已经试过很多次了,通过一个语句检查器运行了它,但仍然不起作用。我有什么遗漏吗


不知何故,它总是返回一个false(即使它假设返回true)

mysql\u select\u db($dataname,$conn)

究竟是什么问题?何时何地发生?您必须调试您的代码。$this->conn->error的输出?考虑到OP正在使用$this->conn,我们可以猜测它是类函数的一部分,尽管没有显示。由于他们使用的是prepare with bind_param,所以他们使用的是mysqli,而不是mysql_*函数。首先是mysqli…我调试了我的代码(或者至少尝试了一下,尽管我知道的知识有限),但它似乎没有运行任何错误,只需给我返回的值零行即可…(尽管这是不可能的),或者,我可以将我的问题重新表述为:是否有必要回应mySQLi准备好的声明@腐败,问题是当我尝试运行它时,例如,它返回searchUserEmail的false,即使它应该是true…(即,未显示echo)。如果您想知道,我的数据库有一个条目和它的ID Username Email 1 admintest123@test.com