困惑的PHP如果不工作

困惑的PHP如果不工作,php,function,if-statement,Php,Function,If Statement,我有点困惑。可能只是因为我太胖了!基本上,我有以下功能: // Check if a verified email function verified($username) { global $conn; if($username == '') { return; } $q = $conn->prepare("SELECT * FROM users WHERE Username='".$username."' AND Verified = 1"); $q-

我有点困惑。可能只是因为我太胖了!基本上,我有以下功能:

// Check if a verified email
function verified($username)
{
    global $conn;
    if($username == '') { return; } 
    $q = $conn->prepare("SELECT * FROM users WHERE Username='".$username."' AND Verified = 1");
    $q->execute();

    return $q->rowCount();
}
然后我的脚本中有以下代码:

if (verified($_SESSION['Username'] == '0')
现在我重复了上面的函数,它返回了它应该返回的
0
,但由于某种原因,如果上面的函数似乎不同意它确实是
0
。我做错了什么

我想你的意思是:

if (verified($_SESSION['Username']) == '0')
注意$\u SESSION['Username']后面的右括号…

我想你的意思是:

if (verified($_SESSION['Username']) == '0')

注意$\u SESSION['Username']后面的右括号…

此行不正确:

if (verified($_SESSION['Username'] == '0')
在$\u会话['Username']之后缺少“')。并且结果将是一个整数(rowcount),因此不需要“”

if (verified($_SESSION['Username']) == 0)

这一行不正确:

if (verified($_SESSION['Username'] == '0')
在$\u会话['Username']之后缺少“')。并且结果将是一个整数(rowcount),因此不需要“”

if (verified($_SESSION['Username']) == 0)

如果复制粘贴错误,则可以,否则请检查

如果(已验证($_会话['Username']=='0')

在['Username']之后检查正确的“


然后检查
session_start()
在会话['Username']

之前,如果复制粘贴出错,则可以,否则请检查

如果(已验证($_会话['Username']=='0')

在['Username']之后检查正确的“


然后检查
session_start()
在会话['Username']

之前,是否缺少结束括号<代码>如果(已验证($\u会话['Username'])='0')@KevinM1:它还散发着SQL注入的气味。。。与只有两个等号相比也是有害的:-)另外,选择COUNT(*)作为cnt也会稍微好一些,并返回
$row['cnt']
,如果您只需要行数,或者至少像
SELECT ID
这样的东西,将节省一些RAM。@KevinM1是的,但他不绑定。这仍然是毫无准备的。@AmazingDreams很好的观点。我甚至没看到。刚才看到
$conn->prepare
位,跳过了其余部分。是否缺少右括号<代码>如果(已验证($\u会话['Username'])='0')@KevinM1:它还散发着SQL注入的气味。。。与只有两个等号相比也是有害的:-)另外,选择COUNT(*)作为cnt也会稍微好一些,并返回
$row['cnt']
,如果您只需要行数,或者至少像
SELECT ID
这样的东西,将节省一些RAM。@KevinM1是的,但他不绑定。这仍然是毫无准备的。@AmazingDreams很好的观点。我甚至没看到。刚才看到
$conn->prepare
位,跳过了其余部分。如果这是问题所在,它甚至不会运行;-)如果您不知道这样做有时间限制。如果这是问题,它甚至不会运行;-)如果您不知道这样做有时间限制。