如何检测数据库中是否存在用户



我想让一些php代码检测数据库中是否存在用户,并根据条件执行特定的代码。这就是我尝试过的:

$query = "SELECT * FROM users WHERE 
username='$username' 
OR email='$email' 
LIMIT 1";
$result = mysqli_query($db, $query);
while ($row = mysqli_fetch_assoc($result)) {
if(count($row) > 0) {
echo "The user exists";
} else {
echo "The user does not exist";
}
}

它回声";用户存在";当用户存在但不存在时;用户不存在";当用户不存在时。为什么会这样?

您不需要循环,因为查询最多返回一行。如果用户存在,它将返回该行,否则将不会有任何行,并且永远不会进入循环。

$row = mysqli_fetch_assoc($result);
if ($row) {
echo "The user exists";
} else {
echo "The user does not exist";
}

如果您实际上并不需要有关用户的信息,那么根本不需要获取这些信息。只获取现有行的计数。

$query = "SELECT COUNT(*) AS count FROM users WHERE username = ? OR email = ?";
$stmt = $db->prepare($query);
$stmt->bind_param("ss", $username, $email);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
if ($row['count'] > 0) {
echo "The user exists";
} else {
echo "The user does not exist";
}

最新更新