无法执行笨查询
我试图执行类似查询:select*from bookdetails where quantity>0 ORDER BY created_date DESC
无法执行笨查询
但我收到错误,如Call to a member function num_rows() on a non-object in...
请帮我解决这个问题。
public function get_all_book_list_ByCreatedDateDSC($limit, $start,$sortsesval)
{
$this->load->database();
$this->db->limit($limit, $start);
$query=$this->db->join('coverdetails', 'coverdetails.cover_id = bookdetails.cover_id')->order_by('created_date', 'DESC')->get_where('bookdetails',array('quantity >', '0'));
if ($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
$data[] = $row;
}
return $data;
}
return false;
}
试试这个:
$this->db->select('*');
$this->db->where('quantity >', $id);
$this->db->join('coverdetails', 'coverdetails.cover_id = bookdetails.cover_id');
$this->db->order_by('bookdetails.created_date', 'desc');
$this->db->limit($limit, $start);
$query = $this->db->get('bookdetails');
if($query -> num_rows() == 1)
return $query->result_array();
else
return false;
你的错误信息是告诉你,$查询是不是一个对象。您无法在非对象上调用成员函数!
你的“连接”方法没有返回一个对象。
尝试在您设置$查询后放入print_r($query)
或var_dump($query)
,找出究竟是什么。
试试你的功能,这样
public function get_all_book_list_ByCreatedDateDSC($limit, $start,$sortsesval)
{
$this->load->database();
return $this->db
->join('coverdetails', 'coverdetails.cover_id = bookdetails.cover_id')
->order_by('created_date', 'DESC')
->limit($limit, $start)
->get_where('bookdetails',array('quantity >', '0'))
->result_array();
}
当你的查询返回空值(没有发现记录),您将无法访问该对象,因为在$查询为null。您需要以数组格式返回数据,以便使用result_array。详情请参阅here;使用这个你不需要遍历对象。它会给你现成的数组。
在控制器中,您可以检查结果是否为空或数组。
我想你的代码。但仍然是同样的错误。如果我将'created_date'更改为'book_title',他们就会得到输出。在我的表中'created_date'是datetime。并且在所有行中,我为'created_date'插入了值'2013-03-02 02:12:36'。是因为created_date错误吗?请解释 – 2013-03-09 09:21:46
@ user2134654你现在得到了什么错误? – 2013-03-09 09:25:12
同样的错误,因为我在我的问题中指定'调用成员函数num_rows()在一个非对象in.' – 2013-03-09 09:32:42
我试过你的代码。但仍然是同样的错误。如果我将'created_date'更改为'book_title',他们就会得到输出。在我的表中'created_date'是datetime。并且在所有行中,我为'created_date'插入了值'2013-03-02 02:12:36'。是因为created_date错误吗?请解释 – 2013-03-09 09:22:27
在D:\ xampp \ htd – 2013-03-09 09:49:17
中的非对象上调用成员函数num_rows()我认为这两个表具有相同的字段名称created_date,因此不是这样:$ this-> db-> order_by('created_date' ,'desc');使用这个: $ this-> db-> order_by('bookdetails.created_date','desc'); – 2013-03-09 09:55:43