访问页面时发生错误,并在页面上显示。显示的错误描述如下:
An uncaught Exception was encountered
Type: Error
Message: Call to a member function num_rows() on bool
Filename: localhost/app/models/admin/Reports_model.php
错误中引用的方法如下:
public function getTotalReturnSales($start, $end, $warehouse_id = null)
{
$this->db->select('count(id) as total, sum(COALESCE(grand_total, 0)) as total_amount, SUM(COALESCE(paid, 0)) as paid, SUM(COALESCE(total_tax, 0)) as tax', false)
->where('date BETWEEN ' . $start . ' and ' . $end);
if ($warehouse_id) {
$this->db->where('warehouse_id', $warehouse_id);
}
$q = $this->db->get('returns');
if ($q->num_rows() > 0) {
return $q->row();
}
return false;
}
怎么会引起这个错误?
答案 0 :(得分:0)
$this->db->get()
将返回false
。如您所知,false
是布尔值,没有“方法”。如果运行以下
$q = $this->db->get('returns');
var_dump($q)
几乎可以肯定地说$q
是一个布尔值,为false。
查询失败的最常见原因是错误的sql语句语法。查看查询生成器创建的查询语句的一种方法是,将以下两行放在$q = $this->db->get('returns');
$sql = $this->db->get_compiled_select('returns', false);
var_dump($sql);
您也许可以查看导致问题的原因。
注意:不返回任何行的查询并非失败。