11

我想像这样使用 get_where 和 order_by ......

$query = $this->db->get_where($this->tbl_name, $where)->order_by('birth_date', 'ASC');

但得到这个错误......

Fatal error: Call to undefined method CI_DB_mysql_result::order_by() in C:\xampp\htdocs\OAWA\application\models\Member_model.php on line 82

我究竟做错了什么?

4

3 回答 3

41

在 CodeIgniter 的 Active Record 中,每个方法都返回对象本身(允许方法链接),除了get返回get_where结果集。

因此,您需要做的是:

$query = $this->db->order_by('birth_date', 'ASC')->get_where($this->tbl_name, $where);

get_where()呼叫需要是最后一个。它返回结果集,因此调用order_by()afterget_where()试图在无效的结果集上调用它。

编辑

还有其他方法可以编写此查询:

 $query = $this->db->from($this->tbl_name)->where($where)->order_by('birth_date', 'ASC')->get();
于 2012-11-10T20:58:37.823 回答
0

这对我有用

$query = $this->db->order_by('columnName', 'ASC')->get_where('tableName');
return $query->result();
于 2015-03-06T09:38:58.340 回答
0
$this->db->order_by('birth_date', 'ASC');
$query = $this->db->get_where($field1, $field2);
于 2015-03-06T14:22:08.037 回答