所以我想得到我模特的回复:
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来获得响应?
答案 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()
是否会影响事后调用的对象。在做了一件事后你为什么要关闭数据库呢?