2017-11-21 1 views
1

그래서 난 내 모델의 응답 좀하고 싶습니다 :CI에 비 객체에 NUM_ROWS를()하는 방법을

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에 non object를 호출하는 방법이 혼동 스럽거나 num_row를 대체하여 응답을 얻으려는 것이 있습니까?

+0

그냥 if (count ($ getdata)> 0) {'? 이미'return $ qrydata-> result();'그래서'$ result-> responseData = $ getdata-> result();'가 호출 될 가능성이 높습니다. –

+0

'if ($ qrydata-> num_rows()> 0)는 $ qrydata-> result()를 반환합니다. FALSE를 반환하십시오. –

+0

해결해 주셔서 감사합니다 –

답변

0

get_list_sales_kit() 함수의 결과를 실제로 반환하려는 경우 행 번호를 얻는 유일한 방법은 count($getdata)입니다. 로렌스는 덧붙여 설명합니다. 그와

은 가끔 데이터베이스 개체 자체과 같이 반환 말했다되는 : 당신이 그렇게에 row() result() num_rows() 및처럼의 모든 CI의 데이터베이스 기능을 실행할 수 있습니다

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 
    } 

등. 두 번째 코드 스 니펫에서 아무 것도 변경하지 않아도됩니다. 어떤 이유로 먼저 result() 객체에 액세스하고 있는데 첫 번째 함수에서 반환하고 있습니다.

참고 : close()이 사실 이후에 호출되는 개체에 영향을 줄지 확실하지 않습니다. 한 가지 작업을 수행 한 후에 데이터베이스를 닫는 이유는 무엇입니까?

+0

당신의 생각은 사실입니다 내 잘못으로 결과가 두 번 데이터를 가져옵니다. –