php – 如何在执行UNION查询时让Zend Db返回行集而不是数组?

我有一个结果集,它是MySQL UNION查询的结果.我用来获取数据的代码是:

$union_select = $PagesTable->getAdapter()->select()
        ->union(array('(' . $legal_resources_select . ')', '(' . $pages_select . ')'));
$PagesTable->getAdapter()->fetchAll($union_select)

$PagesTable扩展了Zend_Db_Table_Abstract.完整选择太大了,无法在此发布,我认为这与这个特定问题无关.如果我错了,请告诉我.

目前这是返回一个结果数组,但我希望它返回一个rowset对象.我还必须能够指定$_rowClass.这是必要的,所以我可以添加格式化和操作返回值的方法.

这可能吗?

最佳答案
你不能.你正在获取的结果集是一个复合,而不是来自数据库的一组行,所以即使它是可能的,它也是一个非常糟糕的主意.

Zend_Db_Table是Table Data Gateway模式的一种实现,而不是Active Record.

您所描述的内容通常可以在Active Record下进行,为此,我建议您查看Doctrine 1.2而不是Zend_Db_Table.

转载注明原文:php – 如何在执行UNION查询时让Zend Db返回行集而不是数组? - 代码日志