2012-04-24 86 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"; 
    } 
}