【问题标题】:check if the query results empty row mysqli [duplicate]检查查询结果是否为空行mysqli [重复]
【发布时间】:2014-02-11 01:49:30
【问题描述】:

我正在使用此代码,但我不明白如何检查查询是否返回零行。如何检查?

$results = $mysqli->query("SELECT ANNOUNCE_NUMBER,ANNOUNCEMENTS,ANNOUNCE_TYPE,POST_DATE FROM home WHERE ANNOUNCE_NUMBER NOT LIKE $excludewelcome AND ANNOUNCE_NUMBER NOT LIKE $excludenews ORDER BY ANNOUNCE_NUMBER DESC LIMIT $position, $items_per_group");
if ($results) { 
    //output results from database

    while($obj = $results->fetch_object())
    {
        if($obj->ANNOUNCE_TYPE=='NEWSEVENTS')
        {
            $realstring='News and Events';
        }
        else
        {
        $realstring='Welcome Note';
        }

        echo '<li id="item_'.$obj->ANNOUNCE_NUMBER.'"><strong>'.$realstring.'</strong></span>';
        echo '<br \>'; 
        echo '('.$obj->POST_DATE.' ) <span class="page_message">'.$obj->ANNOUNCEMENTS.'</span></li>';
    }

}

【问题讨论】:

    标签: php mysql mysqli


    【解决方案1】:

    如果数组看起来像这样 [null] 或 [null, null] 或 [null, null, null, ...]

    你可以使用内爆:

    implode 用于将数组转换为字符串。

    $con = mysqli_connect("localhost","my_user","my_password","my_db");
    $result = mysqli_query($con,'Select * From table1');
    $row = mysqli_fetch_row($result);
    if(implode(null,$row) == null){
         //$row is empty
    }else{
         //$row has some value rather than null
    }
    

    【讨论】:

    • 1.当不需要胶水时,可以省略胶水参数。 2.如果所有的值都是null/empty,那么这个检查将失败。
    【解决方案2】:

    您可以在数据集上使用num_rows 来检查返回的行数。示例:

    $results = $mysqli->query("SELECT ANNOUNCE_NUMBER,ANNOUNCEMENTS,ANNOUNCE_TYPE,POST_DATE FROM home WHERE ANNOUNCE_NUMBER NOT LIKE $excludewelcome AND ANNOUNCE_NUMBER NOT LIKE $excludenews ORDER BY ANNOUNCE_NUMBER DESC LIMIT $position, $items_per_group");
    if ($results) { 
    
        if($results->num_rows === 0)
        {
            echo 'No results';
        }
        else
        {
            //output results from database
            while($obj = $results->fetch_object())
            {
                if($obj->ANNOUNCE_TYPE=='NEWSEVENTS')
                {
                    $realstring='News and Events';
                }
                else
                {
                $realstring='Welcome Note';
                }
    
                echo '<li id="item_'.$obj->ANNOUNCE_NUMBER.'"><strong>'.$realstring.'</strong></span>';
                echo '<br \>'; 
                echo '('.$obj->POST_DATE.' ) <span class="page_message">'.$obj->ANNOUNCEMENTS.'</span></li>';
            }
        }
    }
    

    【讨论】:

    • 但我认为最好使用一个 if (($results) && ($results->num_rows !== 0)) {
    猜你喜欢
    • 2023-04-01
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多