Zend framework 带字符串查询的Zend分页器

Zend framework 带字符串查询的Zend分页器,zend-framework,zend-paginator,Zend Framework,Zend Paginator,我对数据库进行了复杂的查询,我通过原始SQL查询运行数据库。不使用zend orm。我想为我的查询添加Zend Paginator 从Zend docs中,我发现,我需要将所有记录提供给Zend Paginator adapter,他自己制作COUNT()和LIMIT 我有这样的情况: $sql = 'complicated query'; //LIMIT added "by hand", I'd like to make it automatically via zend_paginator

我对数据库进行了复杂的查询,我通过原始SQL查询运行数据库。不使用zend orm。我想为我的查询添加Zend Paginator

从Zend docs中,我发现,我需要将所有记录提供给Zend Paginator adapter,他自己制作
COUNT()
LIMIT

我有这样的情况:

$sql = 'complicated query'; //LIMIT added "by hand", I'd like to make it automatically via zend_paginator
$q = $db->fetchAll($sql, array(/*paramteres here*/));
现在我的问题是:我应该如何使用Zend Paginator进行分页?在我的情况下应该使用哪种适配器?不可能手动获取所有行并使用数组适配器(表中约50000条记录)


任何帮助都将不胜感激:)

您可以使用Zend_Paginator_Adapter_阵列,但这不是最好的方法。更好的方法是将查询重写为Zend_Db_Select并使用Zend_Paginator_Adapter_DbSelect

正如我所写的,数组适配器不是一个选项。结果中记录太多。请使用答案的第二部分,然后重新编写查询以Zend_Db_选择唯一的方法?查询非常复杂,将其重写到Db_select将花费大量时间。您可以编写自己的适配器,它将执行两项操作-执行查询->删除所有选定列,并仅使用一个select计数(1)作为
计数
。。。然后,操作这个数字将为主查询生成限制和偏移量,但我认为这比将查询重写到Zend_Db_Selective要复杂得多。我想要吃蛋糕,然后将其转换为Zend_Db_Selection。