检查用户名是不是存在函数返回 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 即使不存在的主要内容,如果未能解决你的问题,请参考以下文章

即使未定义,也检查嵌套键是不是存在[重复]

检查数组 React 中是不是存在项目

如何从 Bash 脚本中检查程序是不是存在?

PHP如何检查一个数组内是不是存在指定元素

如何在编译时检查是不是存在可以使用特定参数集调用的函数?

检查mysql表php中是不是存在任何记录