mysqli返回空的结果 - 如何显示



我有以下php,基本上获得了mysql查询的结果:

$q2 = "SELECT FIELD FROM TABLENAME WHERE ID = 1;";
$con = new mysqli($server, $user, $pass);
if (mysqli_connect_errno()) 
{
    $error = mysqli_connect_error();
    exit();
}
else
{   
    $res = mysqli_query($con, $q2);
    if ($res)
    {   
        while($row = mysqli_fetch_assoc($res))
        {
            PRINT "THERE WAS A RESULT HERE: "; 
        }
    }
    else
    {
        $error = mysqli_error();
        exit();
    }
    mysqli_free_result($res);   
};
mysqli_close($con);

但有时会返回一个空值。这是有效的,基于父应用程序的工作原理,但是如何检测到空行并返回"这是一个空行:"?

您可能需要在PHP手册中查找mysqli_num_rows()。它使您可以看到上一个查询生成的结果集中有多少行。您可以使用行计数来确定是否显示结果或"无匹配结果"消息。

我希望这会有所帮助。

if ($res)
{   
    if($res->num_rows) {
        while($row = mysqli_fetch_assoc($res))
        {
           PRINT "THERE WAS A RESULT HERE: "; 
        }
    }
    else {
          PRINT "THERE WAS A EMPTY ROW: "; 
    }
}

参考:php.net

谢谢你最终得到的:

$q2 = "SELECT FIELD FROM TABLENAME WHERE ID = 1;";
$con = new mysqli($server, $user, $pass);
if (mysqli_connect_errno()) 
{
    $error = mysqli_connect_error();
    exit();
}
else
{   
$res = mysqli_query($con, $q2);
$row_cnt = mysqli_num_rows($res);
if ($row_cnt == 0)
{
        PRINT "THERE WAS NO RESULT: "; 
 }
else
{    
if ($res)
{   
    while($row = mysqli_fetch_assoc($res))
    {
        PRINT "THERE WAS A RESULT HERE: "; 
    }
}
else
{
    $error = mysqli_error();
    exit();
}
mysqli_free_result($res);   
}
};
 mysqli_close($con);

我的php函数查询句柄:

private function query($sql_query){
        $result = $this->connection->query($sql_query);
        if(!$result){           //query fail
            throw new Exception($this->connection->error.$sql_query);
        }else {//                 "SUCCESS";
            if(!$result->num_rows)
            {
                throw new Exception("THERE WAS NO RESULT: "); 
             }
            for ($res = array(); $tmp = $result->fetch_array(MYSQLI_BOTH);){ 
                $res[] = $tmp;                
            }
           return $res;
        }
    }

最新更新