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()実際の値を取得するには、または などの別の関数を使用する必要があります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

これを試すことができます....

/*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 に答える
0

行をフェッチする必要があります。

$row = mysql_fetch_row($result);
if($row[0] == NULL) 
{
    echo 'failure';
}
于 2012-04-24T09:37:11.930 に答える