CodeIgniter数据库查询限制

时间:2011-02-03 18:05:16

标签: codeigniter

我正在使用ActiveRecord进行一些数据库查询,我需要对结果进行分页,以便我做一个

$this->db->limit($pPagination['Start'], $pPagination['Length']);

但我没有得到任何结果。使用$this->db->last_query();似乎CodeIgniter生成以下SQL

SELECT *
FROM (`viw_contacts`)
WHERE `user_id` = '1'
ORDER BY `contact_name` asc
LIMIT 0 OFFSET 15

当我在PHPMyAdmin中运行它时也会返回0行。

但如果我将其修改为运行:

SELECT *
FROM (`viw_contacts`)
WHERE `user_id` = '1'
ORDER BY `contact_name` asc
LIMIT 0, 15

然后我得到了正确的结果。 CodeIgniter为什么会生成这个SQL以及为什么它不起作用的任何想法?

我使用CodeIgniter 1.7.3和MySQL 5.1.41

1 个答案:

答案 0 :(得分:21)

好的,发现了这个问题。

这是

$this->db->limit($pPagination['Length'], $pPagination['Start']);

而不是

$this->db->limit($pPagination['Start'], $pPagination['Length']);

第一个参数是长度,第二个参数是偏移,而不像我想的那样。