CodeIgniter:函数调用result_array()时出错


CodeIgniter: Function call result_array() gives error

我收到这个错误大约一个小时了,代码点火器上的这个错误是什么

这是我的型号:

我描述了字段的属性太

class news_model extends CI_Model
{
    public function __construct()
    {
        parent::__construct();  
        $this->load->database();
    }
    public function get_news($id = false)
    {
        if ($id === false) {
            $query = $this->db->query("SELECT tbl_news.id,
                                            tbl_news.fa_name,
                                            tbl_news.en_name,
                                            tbl_news.fa_shrt_name,
                                            tbl_news.en_shrt_name,
                                            tbl_news.fa_text,
                                            tbl_news.en_text,
                                            tbl_news.image,
                                            tbl_news.grp_id,
                                            tbl_news_grp.fa_name FROM tbl_news JOIN tbl_news_grp ON tbl_news_grp.id = tbl_news.id ");
            return $query->result_array();
        }
        $query = $this->db->get_where('tbl_news',array('id' => $id));
        return $query->result_array();
    }
}

我得到这个错误:

Fatal error: Call to a member function result_array() on a non-object in 
C:'xampp'htdocs'ipkoroosh'application'models'news_model.php on line 19

你的where条件是如何工作的?你没有超过这个条件的查询,而且这两个条件都不会同时运行,所以需要使用else并根据你的改进查询

public function get_news($id = false)
    {
        if ($id === false) {
            $query = $this->db->query("SELECT tblnews.*,tblnewsgrp.* FROM tbl_news tblnews JOIN tbl_news_grp tblnewsgrp ON tblnewsgrp.id = tblnews.id");
            return $query->result_array();
        }
        else {
           $query = $this->db->query("SELECT * FROM tbl_news WHERE id = '$id'");
            return $query->result_array();
        }
    }

Result有一个可选的$type参数,它决定返回什么类型的结果。默认情况下($type="object"),它返回一个对象(result_object())。它可以设置为"array",然后它将返回一个结果数组,相当于caling result_array()。第三个版本接受一个自定义类作为结果对象。

/**
* Query result. Acts as a wrapper function for the following functions.
*
* @param string $type 'object', 'array' or a custom class name
* @return array
*/
public function result($type = 'object')
{
if ($type === 'array')
{
    return $this->result_array();
}
elseif ($type === 'object')
{
    return $this->result_object();
}
else
{
    return $this->custom_result_object($type);
}
}

参考:堆栈溢出应答

更改:

return $query->get()->result_array();

而是

return $query->result_array();

尝试使用$this->db->last_query()打印SQL查询;并在mysql控制台上运行查询。SQL查询中可能存在错误。

请检查

请正确检查您的查询,我认为它没有给出结果,所以存在此错误。

用这个检查一下。$query->result();