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

标签 php mysql mysqli

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

在为用户创建用户 ID 之前,我想要对代码执行的第一件事是检查用户 ID 是否存在。

我收到以下错误:尝试获取非对象的属性“num_rows”

我已经接受了查询并将其提交到 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);
    }

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

最佳答案

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

$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;
}

话虽这么说,但愿这是一项学术练习,因为编写自己的登录系统用于生产是极其危险的。使用具有内置安全层的框架作为应用程序基础。

关于php - 如何通过 php 和 mysql 查询测试数据库是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54527342/

相关文章:

php - 将 mysql_query 的结果放入 php 数组中

android - 由于android studio中的连接拒绝错误而无法将我的android应用程序与mysql连接?

php - 在幻灯片中来回点击

php - 如何处理表单中的多次提交?

php - 我将如何使用 JSON/PHP/Mysql 保存我的 Javascript 对象,以便在用户返回时重新加载它们?

php - 如何在元素 View 中显示个人资料图片

php - 查询所有年份,但只查询一次

php - 无法连接到数据库。连接器返回编号 : Database sqlsrv_connect failed

php - 按不同表中的数据对mysql表进行排序

php - 多个图像上传到不同的列php mysql