分组原因是非对象

时间:2016-01-21 11:35:50

标签: mysql sql codeigniter

我正在使用codeigniter而我正在尝试执行传递where子句的查询执行,这个where是一个数组,这是我的代码:

$now = date('Y-m-d H:i:s');
$this->record_model->getAllRecord(array('guid' => $guid,
                                 'end_datetime <' => $now,
                                 'GROUP BY hash'));

这是getAllRecord

的内容
$query = $this->db
                ->select('*')
                ->from('appointments')
                ->where($where_clause) 'is passed as parameter..
                ->get()->result_array();

这是where

的内容
array(3) {
["guid"]=>
string(36) "c3682d6f-75b2-4686-966d-cb3c9344369b"
["end_datetime <"]=>
string(19) "2016-01-21 12:03:58"
[0]=>
string(13) "GROUP BY hash"
}

现在,如果我删除所有工作正常的组,但如果我在结果中插入Group By hash没有(重复),则会出现此错误:

  

在非对象

上调用成员函数result_array()

基本上我想获取所有记录的信息,但是一些记录具有相同的哈希值,因此GROUP BY应该将该记录加入一个记录中。但是我做错了什么......

2 个答案:

答案 0 :(得分:1)

分组依据不是where子句的一部分,因此codeigniter将生成语法错误的代码,因此->get()调用会生成正确的结果集。您应该使用对查询的单独->group_by(...)调用来添加group by子句。

答案 1 :(得分:0)

试试这个

$query = $this->db->select('*')
            ->where($where_clause)
            ->get('appointments');
$result = $query->result_array();
return $result;