爲簡潔起見,我將簡化示例;說我有一個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