【问题标题】:checking if a username exists function returns TRUE even if doesn't exist检查用户名是否存在函数返回 TRUE 即使不存在
【发布时间】:2014-04-01 21:36:48
【问题描述】:

此函数返回唯一用户的行数按预期返回 1 但为什么在检查 IF 语句以查看它是否 ===1(也尝试过 ==1)时即使用户没有返回 true存在吗?

function test($user) {
global $link;
$query = "SELECT COUNT('iD') FROM eif WHERE userName = '$user'";
$result = mysqli_query($link,$query) or die(mysqli_error($link)); //or die(mysql_error());
$return_rows =  mysqli_num_rows($result);

echo $return_rows, " is the number of rows", '<br>'; //this displays "1 is the number of the rows"
return $return_rows;
}


//$user = "austin16";

if(test($user)===1){
echo "yes ",$user," does exist";
} else{ echo " no ",$user," does not exist";}

//if $user="austin316" the IF returns TRUE however if $user="austin" it also returns     TRUE but austin does not exist

?>

非常感谢您的浏览。

【问题讨论】:

    标签: function return exists


    【解决方案1】:

    您的查询将始终返回一行,COUNT() 将返回与您的 WHERE 子句匹配的行数。您可以选择不是聚合函数的内容,也可以与返回的值进行比较。最简单的解决方法是将您的 COUNT('iD') 更改为简单的 ID,因此您的 $query 行将是 $query = "SELECT iD FROM eif WHERE userName = '$user'";

    这将使您的$return_rows 变量返回正确的值。

    【讨论】:

    • 哦,看在上帝的份上,哈哈,这让我挠痒痒太久了。我用简单的 ID 进行了测试,但无法弄清楚为什么 COUNT 方式不起作用。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    • 2012-10-12
    • 1970-01-01
    相关资源
    最近更新 更多