Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL总是返回存在的记录(MYSQLI,PHP)_Php_Sql_Mysqli - Fatal编程技术网

SQL总是返回存在的记录(MYSQLI,PHP)

SQL总是返回存在的记录(MYSQLI,PHP),php,sql,mysqli,Php,Sql,Mysqli,下面的代码应该检查数据库中是否存在用户,但当运行查询时,总是返回true。 代码: function checkifexists($username, $email){ require __DIR__ . '/includes/dbcon.php'; $query = $conn->prepare("SELECT username FROM `users` WHERE `username` = ? or `email` = ?"); $query->bin

下面的代码应该检查数据库中是否存在用户,但当运行查询时,总是返回true。
代码:

function checkifexists($username, $email){

    require __DIR__ . '/includes/dbcon.php';

    $query = $conn->prepare("SELECT username FROM `users` WHERE `username` = ? or `email` = ?");
    $query->bind_param("ss", $username, $email);
    $query->execute();
    if(!$query->num_rows){

        //User or Email Already Exists.
        $query->close();
        //header("Location: Register?error=inuse");
        echo "inuse";
        die();
    }
    else {
        var_dump($query);
        $query->close();
        regacc();
    }

}
如何检查用户是否存在;没错

任何帮助都将不胜感激。
谢谢事先。

您需要在调用
$query->num\u行之前调用。
。现在它没有使用正确的结果集,所以它总是返回0,所以
!0
始终为真

当且仅当您希望缓冲客户端的完整结果集时,必须为成功生成结果集(选择、显示、描述、解释)的每个查询调用mysqli_stmt_store_result(),以便后续的mysqli_stmt_fetch()调用返回缓冲数据

作为旁注,请尝试在这里更清楚地说明代码的意图。如果($query->num_rows>0),请使用
if
,而不是依赖于值的“真实性”

$query = $conn->prepare("SELECT username FROM `users` WHERE `username` = ? or `email` = ?");
$query->bind_param("ss", $username, $email);
$query->execute();
$query->store_result();
if(!$query->num_rows) {