如何通过php和mysql查询测试数据库是否为空?

时间:2019-02-05 03:25:55

标签: php mysql mysqli

我有一个“空数据库”的用户。

在创建用户ID之前,要检查用户ID是否存在,这是我想做的第一件事。

我遇到以下错误:Trying to get property 'num_rows' of non-object

我接受了查询,并在mysql上提交了该查询,但未返回任何内容。

我的HTML提交表单:

<form action="index.php" method="post" autocomplete="off">
<input type="text" name="username" placeholder="Username" />
<input type="password" name="password" placeholder="Password" />
<input type="submit" value="Login" />
</form>

我正在测试用户名是否存在。

$query=("SELECT count(*) FROM users WHERE user_name = ?,[$username]");
$result = mysqli_query($conn, $query);

if ($result)
    {
        $result = mysqli_fetch_all($result,MYSQLI_ASSOC);
        return $result;
    } else {
        return mysqli_affected_rows($conn);
    }

测试后,它将提交我的查询以创建用户帐户。

1 个答案:

答案 0 :(得分:1)

重新编写以使用如下所示的正确语法:

$stmt = $conn->prepare("SELECT count(*) FROM users WHERE user_name = ?");
$stmt->bind_param('s', $username);

$result = $stmt->execute();

if ($result)
{
    return $result->fetch_assoc();
} else {
    return $conn->num_rows;
}

话虽如此,希望这是一次学术练习,因为编写自己的登录系统供生产使用极其危险。使用具有内置安全层的框架作为应用程序基础。