0

是否可以针对 Zend_Db_Table_Row 对象运行 SQL (Zend_Db_Select) 查询?连接两个 Zend_Db_Table_Row 对象怎么样?

我知道这听起来有点迟钝,但我正在处理成百上千的行。我已经有了要操作的行对象,所以我不想再次查询数据库。

我希望这很清楚。如果不是,请让我澄清一下。

编辑:

为了澄清,对象在内存中。我已经从数据库中检索了它们。

这样做的原因是:

“日志”表中有数千条记录。我需要根据多个用户定义的标准对这些做出反应。处理这些日志时,时间很重要。有一个新的过程被分叉以使其及时发生。为每个日志创建一个新进程。因此,对象已经存在于内存中。

4

2 回答 2

1

考虑定义关系,然后在 Row 对象上调用 findDependentRowset():

http://framework.zend.com/manual/en/zend.db.table.relationships.html

于 2010-09-01T15:34:01.133 回答
0

您拥有的Zend_Db_Table_Row对象是行,它们不能被查询,因为它们不再在数据库中,它们作为 ZF 的一部分在内存中。它们是由 PHP 处理的内存中的一组数据 - 它们不再与数据库有任何关系,因此无法按照您的建议进行查询。

您应该findDependentRowset()在您的模型或Zend_Db_Table类中使用来定义表之间的关系,然后 ZF 将为您编写连接语句到JOIN表中,然后在您查询数据库后连接的数据将在您的Zend_Db_Table_Row对象中。

或者您可以将此处join()详述的两个或多个表一起使用。您需要对要查询的选择对象进行连接。您需要使用数据库引擎的强大功能来获取所需的数据。在 PHP 中执行此操作比使用数据库要慢得多。JOIN

于 2010-09-04T09:53:11.823 回答