0

我在堆栈溢出上看到过很多这样的问题,但我想知道为什么我的代码不起作用。它具有完美的(逻辑)意义。谁能向我解释我必须编写什么代码才能真正完成我想到的 if 语句?

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

我在 php 中尝试这个。

笔记:

在 DB 中确认设置为 NULL,因此应显示最终的回显。

4

3 回答 3

1

该变量$result包含查询结果的内部表示(由mysql_query()函数返回)。要获得实际值,您需要使用另一个函数,例如mysql_fetch_assoc()or 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';
}
于 2012-04-24T09:36:58.733 回答
0

你需要取一行!

$row = mysql_fetch_row($result);
if($row[0] == NULL) 
{
    echo 'failure';
}
于 2012-04-24T09:37:11.930 回答
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";
    }
}
于 2012-04-24T10:20:03.367 回答