如何检查数据库中的字段是否为空?

时间:2016-08-11 04:33:31

标签: php json

我想在检查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;
}

那么,我的问题是什么以及如何解决?我曾尝试在网上找到答案和解决方案,但都没有。 感谢您的指导和建议。

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

试试这个:

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

答案 2 :(得分:0)

如果为空则使用empty()或strcmp()...否则如果null存储在数据库中则为is_null()

答案 3 :(得分:0)

来自PHP .net

您可以看到: 如果您使用MYSQLI_USE_RESULT,所有后续调用都会返回错误命令不同步,除非您调用mysqli_free_result()

所以,你要么使用

1)MYSQLI_STORE_RESULTmysqli_free_result()

2)mysql_query //传统

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