2017-04-06 164 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'");