2016-08-11 13 views
-1

私はuser_nameが空であればYESをエコーするかどうかチェックしたいところに問題があります。しかし、今私はエコーの結果のいずれかを取得します。私は受け取った:データベースからのフィールドが空であるかどうかをチェックする方法?

エラー:コマンドが同期していない。あなたは今{「成功」:1}このコマンドを実行することはできません

if ($result = $mysqli->query("SELECT user_name FROM user WHERE user_id = '33'", MYSQLI_USE_RESULT)){ 

     while ($row = mysql_fetch_array($result)) { 
      if($row['user_name']===' '){ 
       echo "YES"; 
      } 
     } 

      /* Note, that we can't execute any functions which interact with the 
       server until result set was closed. All calls will return an 
       'out of sync' error */ 
      if (!$mysqli->query("SET @a:='this will not work'")) { 
       printf("Error: %s\n", $mysqli->error); 
      } 

      $result->close(); 
      $json['success'] = 1; 

}else{ 
    $json['success'] = 7; 
} 

をだから、何私の問題とどのように解決しますか?私は答えと解決策をWeb上で見つけようとしましたが、どれもうまくいきませんでした。 ガイダンスとアドバイスをありがとうございます。

+0

、あなたの場合にスペースを入れますステートメント=== '' –

+1

@ Savage Leo [this](http://stackoverflow.com/questions/15798762/mysqli-commands-out-of-sync-you-cant-run-this-command-now)何が間違っているかを理解するのに役立ちます。 – Gunaseelan

答えて

0
while ($row = mysql_fetch_array($result)) { 
      if($row['user_name']===''){ 
       echo "YES"; 
      } 
     } 
+0

私が言及したエラーを受けました: エラー:コマンドが同期していません。今すぐこのコマンドを実行することはできません{"success":1} –

0

これを試してみてください。

if($row['user_name']===' ') to if(empty($row['user_name'])); 
0

使用空の()またはのstrcmp()空の場合... nullはあなたが見ることができるPHP .netからデータベース

+0

nope。うまくいかない –

0

に格納されている場合)(そうでないIS_NULL: MYSQLI_USE_RESULTを使用すると、以降のすべての呼び出しで、mysqli_free_result()を呼び出さない限り、エラーコマンドが同期しなくなります。

だから、どちらかあなたは

1)MYSQLI_STORE_RESULTmysqli_free_result()

2)を使用しmysql_query //

3)が再び接続を確立し、伝統的な(DBへの再接続)

関連する問題