PHP:检查NUM行是否为零



我试图检查数据库返回的结果是否为零,但始终落到零以下是我的代码

if(isset($_POST['cust_id'])){
    $cust_id = $_POST['cust_id'];
    $stmt = $connect->prepare("SELECT DISTINCT send_stamp, message, time, status FROM `chat` WHERE cust_id=?");
    $stmt->bind_param('i', $cust_id);
}
else if(isset($_POST['receiverid'])) {
    $receiverid = $_POST['receiverid'];
    $stmt = $connect->prepare("SELECT DISTINCT send_stamp, message, time, status FROM `chat` WHERE receiverid=?");
    $stmt->bind_param('i', $receiverid);
}
if($stmt->execute()){
    $data  = array();
    if($stmt->num_rows ==0){
        $data[] = array(
           'message'=> 'No messages found',
           'status'=>0,
        );
    }
    else{
        $result = $stmt->get_result();
        while ($row =mysqli_fetch_array($result)) { 
            $data[] = array(
                'message'=> $row['message'],
                'time'=> $row['time'],
                'status'=> $row['status'],
            );
        }   
    }
}
echo json_encode( $data); 

请帮助我找出这种情况。谢谢

尝试使用此

执行查询并将数据获取到result like $result=$stmt->execute()中, result比较if() condition like if($result)if($result == 0)内部,因此给出了结果

$result=$stmt->execute();
if($result)
{  
    $data  = array();
    if($result ==0){
        $data[] = array(
               'message'=> 'No messages found',
               'status'=>0,
            );
    }
    else{
    $result = $stmt->get_result();
        while ($row =mysqli_fetch_array($result)) { 
            $data[] = array(
               'message'=> $row['message'],
               'time'=> $row['time'],
               'status'=> $row['status'],
            );
        }   
    }
}

还要在if($stmt->execute())之后编写$result = $stmt->get_result();,然后像这样比较if($result->num_rows ==0)

最新更新