CodeIgniter get_where order_by

use*_*331 10 php codeigniter

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

$query = $this->db->get_where($this->tbl_name, $where)->order_by('birth_date', 'ASC');
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

xbo*_*nez 35

在CodeIgniter的Active Record的,每一个方法返回对象本身(它允许方法链接),除了getget_where其返回结果集.

因此,您需要做的是:

$query = $this->db->order_by('birth_date', 'ASC')->get_where($this->tbl_name, $where);
Run Code Online (Sandbox Code Playgroud)

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

编辑

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

 $query = $this->db->from($this->tbl_name)->where($where)->order_by('birth_date', 'ASC')->get();
Run Code Online (Sandbox Code Playgroud)