php - 在非对象上调用成员函数 num_rows()

标签 php activerecord codeigniter-2

我正在使用 CodeIgniter,我想从数据库中的表中获取一些数据。

在我的模型中,我有这个功能:

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 表中的一些记录。

在我的 Controller 中我有这一行:

$cours = $this->cours_m->fetch_cours(10,0,'Programmation Orientée Objet (Java)');

当我调用我的 Controller 时,我收到这条消息:

enter image description here

第 38 行是:if ($query->num_rows() > 0) {

所以我做了一个 var_dump($query),这是输出:

enter image description here

有什么问题吗?我该如何解决?

最佳答案

当您创建 $query 变量时,您已经添加了一个 ->result()

所以 $query 是一个行对象数组。

您应该将 if 更改为:

if (count($query) > 0) {

例如,可能会将变量重命名为 $results

关于php - 在非对象上调用成员函数 num_rows(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20751899/

相关文章:

php - CakePHP 单元测试只工作一次,然后我必须重置数据库

php - 高级数据库设计 - 执行以下操作的最有效方法是什么

php - Xdebug 3-设置 'xdebug.remote_***'已重命名,请参阅升级指南

mysql - 如何使用 ruby​​ 事件记录获得 unique_checks=0

codeigniter-2 - codeigniter php 中是否有任何论坛?

php - 我想编写一个使用 $_POST ['first_name ' ] 和 $_POST ['password ' ] 作为参数的函数

ruby-on-rails - Rails 中模型的默认命名空间

ruby-on-rails - rails : validating a field is present only if another is present

php - 为什么 @ 运算符不抑制 CodeIgniter 中的 E_NOTICE?

Codeigniter:加入 'where in' 子句