2012-04-24 122 views
0

我在堆棧溢出中看到過很多像這樣的問題,但我想知道爲什麼我的代碼無法工作。它使完美(合乎邏輯)的意義。任何人都可以請向我解釋一下我需要編寫什麼代碼才能真正完成我所想的if語句?簡單的MySQL查詢和比較

$result = mysql_query("SELECT confirmed FROM usernames WHERE username = '$username' AND password = '$password'") 
if ($result==NULL) 
echo 'Failure'; 

我正在試圖在php中。

注:

在DB確認被設置爲NULL,所以最終的回聲應顯示。

+0

什麼不起作用?你收到什麼錯誤?你期望它返回什麼?任何樣本數據?需要更多信息。 – anothershrubery 2012-04-24 09:34:53

+3

$結果是資源,而不是/ field/s。在失敗的情況下它是錯誤的,否則它包含你需要使用f.ex來獲取的資源。 mysql_fetch_array() – 2012-04-24 09:37:19

回答

1

變量$result包含查詢結果的內部表示(由mysql_query()函數返回)。要獲得實際值,您需要使用其他功能,如mysql_fetch_assoc()mysql_result()。有點像這樣:

$result = mysql_query("SELECT confirmed FROM usernames WHERE username = '$username' AND password = '$password'"); 
$conf = mysql_result($result, 0, 0); 
if ($conf == NULL){ 
    echo 'Failure'; 
} 
+0

謝謝你的代碼,但最重要的是,謝謝你的解釋。很有幫助。我很感激。 – EGHDK 2012-04-24 10:12:08

+0

沒問題,不要忘記接受:-) – 2012-04-24 11:34:32

+0

接受。 4個月後...但接受。嘿。再次感謝。 – EGHDK 2012-08-10 07:50:13

0

您需要取一排!

$row = mysql_fetch_row($result); 
if($row[0] == NULL) 
{ 
    echo 'failure'; 
} 
0

你可以試試這個....

/*Add die for check if query has error */ 
/*Put Limit 0,1 for fetch only single row*/ 
$result = mysql_query("SELECT confirmed FROM usernames WHERE username = '$username' AND password = '$password' Limit 0,1") or die(mysql_error()); 

if($result){ 
    /*check if query return result or not according sql cond*/ 
    if(mysql_num_rows($result) == 0){ 
    echo "No Record Found"; 
    exit(); 
    } 
    /*Assign confirmed index value to a varriable $condirmed*/ 
while($row = mysql_fetch_assoc($result)){ 
     $confirmed = $row['confirmed']; 
    } 
    if($confirmed == 'NULL'){ 
     echo "Failure"; 
    } 
}