2011-02-03 53 views
8

我使用ActiveRecord做一些分貝querys,我需要分頁的結果,所以我做了CodeIgniter的數據庫查詢限制

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

,但我沒有得到任何結果。使用$this->db->last_query();似乎笨產生以下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 

然後我得到正確的結果。任何ideea爲什麼CodeIgniter生成這個SQL以及爲什麼它不起作用?

我使用CodeIgniter 1.7.3和MySQL 5.1.41

回答

20

好的,找到了問題。

這是

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

,而不是

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

第一個參數是長度和第二的偏移量,而不是其他的方式,我想。