如何在CI中的非对象上获取num_rows()

时间:2017-11-21 02:05:11

标签: php html mysql codeigniter

所以我想得到我模特的回复:

function get_list_sales_kit(){
        $brispot = $this->load->database('brispot',TRUE);
        $brispot->select('id,title,imgurl,description');
        $qrydata = $brispot->get('saleskit');
        $brispot->close();
        return $qrydata->result();
    }

这是调用该模型的函数:

function salesKit2($request){
    $result = new stdClass;
    $user='';
    $CI =& get_instance();
    $CI->load->library('libs_bearer');
    $CI->load->library('libs_brispot');
    $CI->load->model('service_model');
        $datapost = json_decode($request);
        if(isset($datapost->user)){
            $user = substr('00000000'.$CI->security->xss_clean(trim($datapost->user)),-8);
            if($CI->libs_bearer->cekToken($user)==true){
                $getdata = $CI->service_model->get_list_sales_kit();
                if($getdata->num_rows()>0){
                    $result->responseCode='00';
                    $result->responseDesc='Inquiry berhasil.';
                    $result->responseData=$getdata->result();
                }

}

但是我得到了像致命错误的结果错误调用非对象上的成员函数num_rows()。 我混淆了如何在num_row上调用非对象,还是有什么东西可以替换num_row来获得响应?

1 个答案:

答案 0 :(得分:0)

如果你真的想从你的get_list_sales_kit()函数返回结果,那么得到行数的唯一方法是count($getdata),正如劳伦斯在评论中所说的那样。

话虽如此,我有时会像这样返回数据库对象:

function get_list_sales_kit(){
        $brispot = $this->load->database('brispot',TRUE);
        $brispot->select('id,title,imgurl,description');
        $qrydata = $brispot->get('saleskit');
        $brispot->close();
        return $qrydata; // this line changed
    }

因此,您可以在其上运行任何CI数据库函数,例如row() result() num_rows(),依此类推。在第二个代码片段中无需更改任何内容,因为即使您在第一个函数中返回它,您也已经访问了result()对象。

注意:我不确定close()是否会影响事后调用的对象。在做了一件事后你为什么要关闭数据库呢?