我正在进行简单的登录。一个逻辑是,如果用户名不存在,那么他们会收到一条错误消息,然后重定向到注册页面。 但是,当我运行我的代码时,我不断收到上述错误,无论我输入什么用户名,它仍然会恢复正常。
$res = $mysqli->query("SELECT Count(`userID`) FROM `users` WHERE `UserName` = '$username'");
if($res ==0){
return false;
}
else
return true;
}
我正在开发它时控制数据库,因此知道它中包含哪些用户名。我的印象是,如果我输入数据库中的用户名,则计数将为1,因此将返回true,同样如果我输入的数据不在数据库中,那么计数将为0,因此$ res会是假的吗?
答案 0 :(得分:0)
可以这样做:
return ($res && $res->num_rows >= 1) ;
答案 1 :(得分:0)
你仍然要数! mysqli :: query的返回值不是整数,而是结果对象。
if ($res->num_rows == 0) {
return false;
} else {
return true;
}
这被认为不是编写返回值的最佳编码风格。
return ($res->num_rows > 0); // will be true if result is bigger than 0
这导致了一个问题:如果有两行或更多行返回怎么办?