Я использую конкретную реализацию Zend_Db_Table_Abstract:
class DB_TestClass extends Zend_Db_Table_Abstract {
protected $_name = "test.TestData";
}
Если я хочу выбрать все строки в таблице, мне кажется, у меня есть одна опция:
$t = new DB_TestClass;
$rowset = $t->fetchAll();
Это возвращаетэкземпляр Zend_Db_Table_Rowset, имеющий итеративный интерфейс, который вы можете зациклить, и доступ к каждой записи строки как к экземпляру rowClass:
foreach($rowset as $row) {
var_dump($row);
}
ОДНАКО, набор строк загрузил каждую строку из базы данных в память (!)Для таблиц это нормально, но для больших таблиц - например, для тысяч строк - он быстро исчерпывает память, доступную для PHP, и сценарий умирает.
Как я могу, используя Zend_Db, перебрать набор результатов, получая одинстрока из дескриптора оператора за раз, ala mysql_fetch_assoc ()?Это позволило бы получить эффективный доступ к любому количеству строк (тысяч, миллионов) без чрезмерного использования памяти.
Заранее благодарим за любые предложения.