代码之家  ›  专栏  ›  技术社区  ›  d-_-b

如何查询zend_db_table_行

  •  0
  • d-_-b  · 技术社区  · 15 年前

    是否可以对zend_db_table_row对象运行SQL(zend_db_select)查询?加入两个zend-db-u-table-row对象怎么样?

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

    希望清楚。如果没有,请让我澄清。

    编辑:

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

    原因是:

    “日志”表中有数千条记录。我需要根据多个用户定义的标准对这些作出反应。处理这些日志时,时间很重要。为了及时实现这一目标,需要对新流程进行分叉。为每个日志分配一个新进程。因此,对象已经存在于内存中。

    2 回复  |  直到 15 年前
        1
  •  0
  •   Jake N    15 年前

    这个 Zend_Db_Table_Row 您拥有的对象是行,不能查询它们,因为它们不再在数据库中,而是作为ZF的一部分在内存中。它们是由PHP处理的内存中的一组数据——它们不再与数据库有关,因此不能像您建议的那样查询它们。

    你应该使用 findDependentRowset() 在你的模特身上或者 Zend_Db_Table 类定义表之间的关系,然后ZF将为您编写join语句 JOIN 表在一起,合并后的数据将位于 zend_db_table_行 查询数据库后的对象。

    或者你可以使用 join() 作为详细 here 加入 两张或两张以上的桌子在一起。您需要对正在查询的Select对象进行联接。您需要使用数据库引擎的功能来获取所需的数据。在PHP中这样做要比使用数据库慢得多。

        2
  •  1
  •   Tim    15 年前

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

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