检查用户名是不是存在函数返回 TRUE 即使不存在
Posted
技术标签:
【中文标题】检查用户名是不是存在函数返回 TRUE 即使不存在【英文标题】: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
?>
非常感谢您的浏览。
【问题讨论】:
【参考方案1】:您的查询将始终返回一行,COUNT()
将返回与您的 WHERE
子句匹配的行数。您可以选择不是聚合函数的内容,也可以与返回的值进行比较。最简单的解决方法是将您的 COUNT('iD')
更改为简单的 ID
,因此您的 $query
行将是 $query = "SELECT iD FROM eif WHERE userName = '$user'";
这将使您的$return_rows
变量返回正确的值。
【讨论】:
哦,看在上帝的份上,哈哈,这让我挠痒痒太久了。我用简单的 ID 进行了测试,但无法弄清楚为什么 COUNT 方式不起作用。谢谢!以上是关于检查用户名是不是存在函数返回 TRUE 即使不存在的主要内容,如果未能解决你的问题,请参考以下文章