2017-04-06 216 views
0

我试图创建一个函数来检查用户是否订阅,但是代码不起作用,即使用户订阅也不返回TRUEPHP函数不返回TRUE

这是我的代码的一个例子。

function is_subscribed($email) 
{ 
    global $DBC; 

    $result = mysqli_query($DBC,"SELECT * FROM users WHERE email = $email"); 

    if(mysqli_num_rows($result) > 0) { 
     while($row = mysqli_fetch_array($result)) { 
      if($row['subscribed'] == 'yes') { 
       return TRUE; 
      } else { 
       return FALSE; 
      } 
     } 
    } 
} 

$user_email = $_SESSION['email']; 

if(is_subscribed($user_email)) { 
    echo "YES!"; 
} 
+0

做'的var_dump($行[ '订阅'])时,什么出来;'或'的var_dump($行)' – JustOnUnderMillions

+0

您的查询无效。 'email'是一个字符串。您应该参数化查询。把'else'和错误报告放在'$ result'上,你会看到这个问题。 – chris85

+0

@MaheshSinghChouhan为什么?如果他们取消订阅,OP可能不希望它是真实的。 – chris85

回答

0

您需要将$ email封装到引号中,因为它是一个字符串。 所以:

SELECT * FROM users WHERE email = '$email' 
+0

hawkeye ;-) :-) – JustOnUnderMillions

0

只是做一些更改添加事务所报价

$result = mysqli_query($DBC,"SELECT * FROM users WHERE email = '$email'");