我正在使用ActiveRecord做一些db查询,我需要对结果进行分页,所以我做了一个
$this->db->limit($pPagination['Start'], $pPagination['Length']);
Run Code Online (Sandbox Code Playgroud)
但我没有得到任何结果.使用$this->db->last_query();它似乎CodeIgniter生成以下SQL
SELECT *
FROM (`viw_contacts`)
WHERE `user_id` = '1'
ORDER BY `contact_name` asc
LIMIT 0 OFFSET 15
Run Code Online (Sandbox Code Playgroud)
当我在PHPMyAdmin中运行它时,它返回0行.
但如果我修改它运行:
SELECT *
FROM (`viw_contacts`)
WHERE `user_id` = '1'
ORDER BY `contact_name` asc
LIMIT 0, 15
Run Code Online (Sandbox Code Playgroud)
然后我得到了正确的结果.CodeIgniter为什么会生成这个SQL以及为什么它不起作用的任何想法?
我使用CodeIgniter 1.7.3和MySQL 5.1.41
dan*_*els 21
好的,发现了这个问题.
它的
$this->db->limit($pPagination['Length'], $pPagination['Start']);
Run Code Online (Sandbox Code Playgroud)
代替
$this->db->limit($pPagination['Start'], $pPagination['Length']);
Run Code Online (Sandbox Code Playgroud)
第一个参数是长度,第二个是偏移量,而不是我认为的另一种方式.
| 归档时间: |
|
| 查看次数: |
42897 次 |
| 最近记录: |