2009-12-16 77 views
0

我想這一點:PHP /笨 - 通過迭代9000+ DB行生成一個下載頁面空白

function send_sms() { 
$liveQuery = $this->db->get('liveList'); 
$counter = 0; 

foreach($liveQuery->result() as $row): 
    $counter = $counter+1; 
    echo("Not hatin', just iteratin'. Message " . $counter); 
endforeach; 
} 

當liveList有8000條記錄它運行得很好,但是當我嘗試用9000個就行生成一個空白,0 KB文件的下載。任何人都知道爲什麼會這樣?

回答

0

這篇文章應該可以幫助您:

http://codeigniter.com/forums/viewthread/129194/

+1

讀一點,到這個職位: http://codeigniter.com/forums/viewreply/637930/ – 2009-12-16 15:27:12

+0

好吧,我讀過它,但我不明白「where('field1',1)」這部分...... $ results = $ this-> db-> select('field1,field2') - > from('table') - > where('field1',1) - > get(); 那部分是做什麼的? – Frode 2009-12-16 16:10:28

+1

他正在使用方法鏈來構建他的ActiveRecord查詢。這是一個只讀PHP5的語法,讀取更好,佔用空間更少。 ('field1','field2') - > from('table') - > where('field1',1) - > get(); 與 相同 $ this-> db-> select('field1,field2'); $ this-> db-> from('table'); $ this-> db-> where('field1',1); $ query = $ this-> db-> get(); – 2009-12-17 09:10:39

0

我不熟悉codeigniter,但是你有php錯誤報告嗎?可能存在隱藏的錯誤。

+0

CodeIgniter默認使用E_ALL,大多數人不會改變這一點。 – 2009-12-16 15:14:21

+0

好吧,但如果問題是通過您的文章解決,那麼它應該仍然拋出一個錯誤代碼,它已經超過了它的內存。既然不是,我只能假設他關閉了錯誤報告。 – user103219 2009-12-16 15:16:25

+0

不完全。如果你讀下來,你會看到有一種使用私有方法的方法,它在處理大型數據集方面要好得多。 現在顯然超時或耗盡內存,所以使用較輕的方法意味着這不應該發生。 – 2009-12-16 15:26:24

0

空白頁通常是超時的症狀或崩潰的腳本。您可能能夠在服務器日誌中找到確切的原因。確保你的PHP安裝中啓用了log_errors指令。另外,看看Web服務器日誌。