2016-08-11 70 views
-1

我遇到了麻烦,我想检查user_name是否为空,那么它会回显YES。但是现在我可以得到任何回声结果。我收到:如何检查数据库中的字段是否为空?

错误:命令不同步;你现在不能运行这个命令{“success”: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; 
} 

那么,我的问题和如何解决?我曾尝试在网上找到答案和解决方案,但没有一个可行。 感谢您的指导和建议。

+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(如果为空)...否则is_null()如果为null从PHP .net你可以看到存储在数据库

+0

nope。无法工作 –

0

如果使用MYSQLI_USE_RESULT,所有后续调用将返回错误命令不同步,除非调用mysqli_free_result()

所以,要么你用

1)MYSQLI_STORE_RESULTmysqli_free_result()

2)mysql_query //传统

3)再次建立连接(重新连接到DB)

相关问题