gpt4 book ai didi

php - Zendframework Rowset 按键选择

转载 作者:搜寻专家 更新时间:2023-10-30 23:19:57 26 4
gpt4 key购买 nike

我正在尝试通过行的主键访问 fetchAll 调用(返回 Zend_Db_Table_Rowset_Abstract)的行。

我想知道除了遍历并找到所需的行之外,最简单的方法是什么。

最佳答案

如果我没记错的话,Zend_Db_Table_Rowset_Abstract 只是传递了一个数组(或类似数组的东西),然后当您遍历它时,它会创建 Zend_Db_Table_Row_Abstract 对象。

最好的方法可能是遍历一次,并将行存储在一个数组中,由主键索引。这样你做一个循环,然后可以通过键访问任何行。

更新:刚刚查看了源代码,这里是(最终)传递给行集对象的数据:

$stmt = $this->_db->query($select);
$data = $stmt->fetchAll(Zend_Db::FETCH_ASSOC);
return $data;

当您第一次遍历行集时,原始数组用于创建行对象。数据在此之前尚未循环,因此您没有在做已经完成的事情。

所以你必须做这样的事情来将行映射到主键(我有一段时间没有使用 Zend_Db_*,把它当作伪代码):

$rows = array();
foreach($rowset as $row){
//you could pull the primary key from Zend_Db_Table
$rows[$row->id] = $row;
}

//now you can lookup by primary key
$rows[55]->name;

当然,如果需要,您可以扩展抽象行集类并在内部执行此操作。

关于php - Zendframework Rowset 按键选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7782238/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com