gpt4 book ai didi

php - Mysql查询总是返回true

转载 作者:行者123 更新时间:2023-11-29 01:39:32 25 4
gpt4 key购买 nike

所以我尝试使用 mysqli 查询检查用户是否被禁止,但它似乎总是返回用户被禁止。即使它们没有被禁止。

user_banned 函数

function user_banned ($con, $username) {
$data = $username;
$username = sanitize($data, $con);
$username = $data;
mysqli_query($con, "SELECT `banned` FROM `users` WHERE `username` = '$username'");
return(mysqli_affected_rows($con) == 1) ? true : false;
}

调用函数的地方:

$username = $_POST['username'];
$password = $_POST['password'];

if (user_banned($con, $username) === true ) {
$errors[] = 'You are banned, contact an admin.';
}

我已经回显了 $username,它是正确的用户名,所以这不是问题。

TL;dr 函数总是出于某种原因返回 true。

最佳答案

mysqli_affected_rows() 用于插入和更新。你需要 mysqli_num_rows()

如果碰巧超过 1 行,您当前的逻辑将返回 false,因此这可能更有意义:

return(mysqli_affected_rows($con) != 0) ? true : false;
//or even
return (bool)mysqli_affected_rows($con);

还有,这是什么鬼?它什么都不做。

$data = $username;
$username = sanitize($data, $con);
$username = $data;

关于php - Mysql查询总是返回true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29520763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com