Php 对非对象调用成员函数num_rows()
我正在使用CodeIgniter,我想从数据库中的表中获取一些数据 在我的模型中,我有以下功能:Php 对非对象调用成员函数num_rows(),php,activerecord,codeigniter-2,Php,Activerecord,Codeigniter 2,我正在使用CodeIgniter,我想从数据库中的表中获取一些数据 在我的模型中,我有以下功能: public function fetch_cours($limit, $start, $element) { $id_element = $this->db->from('element') ->where('name',$element)
public function fetch_cours($limit, $start, $element) {
$id_element = $this->db->from('element')
->where('name',$element)
->limit(1)
->get()
->result();
$query = $this->db->from('cour')
->where('id_element',(int) $id_element[0]->id)
->limit($limit, $start)
->get()
->result();
var_dump($query);
if ($query->num_rows() > 0) {
foreach ($query->result() as $row) {
$data[] = $row;
}
return $data;
}
return false;
}
我希望此函数返回cour
表中的一些记录
在我的控制器中,我有一行:
$cours = $this->cours_m->fetch_cours(10,0,'Programmation Orientée Objet (Java)');
当我呼叫我的控制器时,我收到以下消息:
第38行是:if($query->num_rows()>0){
所以我做了一个var_dump($query),结果如下:
问题是什么?我如何解决它?调用->result(),查询执行的结果在一个数组中。您可以这样调用变量,例如:
$cours = $this->db->from('cour')
->where('id_element',(int) $id_element[0]->id)
->limit($limit, $start)
->get()
->result();
然后将测试更改为:
if (count($cours) > 0) {
foreach ($cours->result() as $row) {
$data[] = $row;
}
return $data;
}
创建
$query
变量时,您已经添加了一个->result()
因此,$query
是一个行对象数组
您应该将if
更改为:
if (count($query) > 0) {
例如,可能将变量重命名为$results