我收到这个错误就像一个小时,这是codeigniter上的错误
这是我的模特:
我也描述了字段的属性
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
答案 0 :(得分:1)
你的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();
}
}
答案 1 :(得分:0)
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);
}
}
答案 2 :(得分:0)
正确检查您的查询我认为它没有给出结果所以这个错误就在那里。
用它来检查。 $查询 - >结果();
答案 3 :(得分:0)
变化:
return $query->get()->result_array();
代替
return $query->result_array();
答案 4 :(得分:0)
尝试使用$ this-> db-> last_query();来打印您的SQL查询;并在mysql控制台上运行查询。 SQL查询中可能存在错误。
请检查