为简洁起见,我将简化示例;说我有一个index.php
文件,在其中我实例库类是这样的:从存储库类文件中逐行读取
$itemRepos = new ItemRepository();
$allItems = $itemRepos->getAll();
,并在可变$allItems
这一点我有所有的记录从数据库中返回给我,现在我可以遍历它们。
但现在,我需要(因为内存问题)从数据库中逐一读取项目,当然,在index.php
文件中,我可以建立与数据库的连接并使用这样的while循环例如:
while ($row = mysql_fetch_row($result)){
//do stuff
}
,从而读取行一个接一个,但我不想那样做,我想知道我怎么使用OOP原理实现同样的事情,所以没有把将db连接逻辑放入index.php
文件中,并通过(以某种方式)将其放入Repository类中。
我确实认为某种模式或'东西'已经存在,所以请把我推向正确的方向。
要开始从不使用mysql_ *。看着PDO。查看ORM。 –
ps,除了一次一个迭代迭代之外,您还需要查看'mysql_unbuffered_query()'。标准的'mysql_query()'完全缓冲了结果集,所以你将在大型结果集上遇到内存问题。 – goat