PHP用户帐户激活检查不起作用

PHP用户帐户激活检查不起作用,php,mysql,Php,Mysql,我正在使用PHP构建一个登录表单,表单验证的一部分是检查用户是否是“活动”的,这是mysql表users中的一个整数,它将等于0或1(1表示已激活)。在我当前的设置中,如果用户没有活动帐户,则无法登录。我的第一次尝试是: //This code won't work because the query is an object, not an integer. elseif(mysqli_query($connection, "SELECT COUNT('ID') FROM users WHER

我正在使用PHP构建一个登录表单,表单验证的一部分是检查用户是否是“活动”的,这是mysql表users中的一个整数,它将等于0或1(1表示已激活)。在我当前的设置中,如果用户没有活动帐户,则无法登录。我的第一次尝试是:

//This code won't work because the query is an object, not an integer.
elseif(mysqli_query($connection, "SELECT COUNT('ID') FROM users WHERE username='$usernamelogin' AND 'active'='1'") < 1) {
    echo('Account not activated. ');
}
然而,这段代码只给出1的答案,即使我希望它给出0。我哪里出错了?我还可以使用哪些其他方法来实现此功能

更新:

我确实错误地使用了单引号而不是反勾号,因此我尝试实现以下所有变体(我相信第一个变体是正确的,但在不起作用时尝试了所有其他变体)。他们都没有改变我的结果

"SELECT COUNT(`ID`) AS count FROM users WHERE username='$usernamelogin' AND 'active'='1'"
"SELECT COUNT(`ID`) FROM users WHERE username='$usernamelogin' AND active='1'")


我也试过这些,但都没用:

mysqli_query($connection, "SELECT COUNT(`ID`) FROM users WHERE username=$usernamelogin AND `active`='1'");

mysqli_query($connection, "SELECT COUNT(`ID`) FROM users WHERE username=$usernamelogin AND active='1'");
解决方案:

在代码中实现的解决方案:

$result = mysqli_query($connection, "SELECT COUNT(`ID`) AS count FROM users WHERE username='$usernamelogin' AND `active`='1'");
$row = mysqli_fetch_assoc($result);
if($row['count'] == true) {
    echo('account not active'); }
试试这个:

$result = mysqli_query($connection, "SELECT COUNT(`ID`) AS count FROM users WHERE username='$usernamelogin' AND `active`='1'");
$row = mysqli_fetch_assoc($result);
var_dump($row['count'] < 1);
$result=mysqli\u query($connection,“选择COUNT(`ID`)作为username='$usernamelogin'和`active`='1''的用户的计数);
$row=mysqli\u fetch\u assoc($result);
变量转储($row['count']<1);
编辑:
将单引号更改为反引号。

ID字段周围有单引号-因此它是一个字符串。 尝试删除它们或在字段标识符周围使用`标记,如下所示:

SELECT COUNT(`ID`) FROM users
在插入到SQL中的变量周围也有单引号,因此最终解决方案是:

"SELECT COUNT(`ID`) FROM users WHERE username=$usernamelogin AND `active`='1'"

无论条件是真是假,它都回答布尔(真)@亨利克:这没有道理。什么
var_dump($row['count'])是吗?哦,现在我明白了问题所在,您使用单引号来转义活动字段,您应该使用反引号
`
或者根本不使用引号。我相信您关于需要修复的问题是正确的。然而,它并没有解决我的问题,我仍然只得到1和bool(真)@Nikica结合我收到的两个答案返回bool(false)!
SELECT COUNT(`ID`) FROM users
"SELECT COUNT(`ID`) FROM users WHERE username=$usernamelogin AND `active`='1'"