2017-04-06 20 views
0

ユーザが購読中であるかどうかをチェックする機能を作成しようとしていますが、コードが機能しない場合、ユーザが購読中でもTRUEを返しません。PHP関数が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($行)' – JustOnUnderMillions

+0

あなたの質問は無効です。 'email'は文字列です。クエリをパラメータ化する必要があります。 'else'と' $ result'のエラー報告を入れれば、問題が見えます。 – chris85

+0

@MaheshSinghChouhanなぜですか?彼らが契約を解除した場合、OPはそれが真実であることを望んでいない可能性があります。 – chris85

答えて

0

文字列であるため、$ emailを引用符で囲む必要があります。 ので:

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

ホーキエ;-) :-) – JustOnUnderMillions

0

わずか数の変化は `のvar_dump($行[ '購読を'])やってたときに出てくる何SIGLEの引用

$result = mysqli_query($DBC,"SELECT * FROM users WHERE email = '$email'"); 
関連する問題