我有一个“空数据库”的用户。
在为用户创建用户 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/