2012-11-15 125 views
0

我得到了一個php腳本,每運行1小時在我的服務器(一個線程)上運行。這個線程正在做的是,用戶可以用數據上傳excel文件,線程將excel文件中的數據與數據庫中的數據進行比較,並執行某些操作(如果找到的行不存在,則執行某些操作(數據庫中的某些插入操作不相關)。要讀取Excel文件我稱之爲:PHP線程腳本異常終止

$data = new Spreadsheet_Excel_Reader(); 
$data->read($file); 

用戶可以上傳更多的XLS文件,稱爲服務器上:File_1.xls,File_2.xls,File_3.xls 我讀的第一個文件獲取所有數據做所有的比較,做所有的插入,這可能需要一段時間,有時超過6000行的Excel。我注意到如果線程運行時間很長,例如他可以插入文件1和文件2,並且文件是6000+行這樣的大文件,我會在我的錯誤日誌中得到一箇中止。我認爲這是excel讀者的錯誤。有任何想法嗎?

+0

你得到了什麼確切的錯誤信息? –

+0

中止。就這樣。不能真正與那個工作...:D –

+0

其PHP 5.4.7它有助於 –

回答

3

據我所知你的服務器沒有足夠的內存(RAM)來容納多個文件指針和大數組數據。增加服務器的內存或嘗試使用不同的算法從XLS讀取數據以執行比較插入。

+0

不知道這一點。因爲當我導入60k行excel時,首先他腳本讀取了沒有問題,然後是小的,然後停下來。 –

+0

我剛剛注意到在我讀取第二個文件之前,我在數組中使用了unset(),那是一個問題? –

+0

確定找到了錯誤,您不能取消()一個私人變量...導致中止錯誤... –