2011-10-10 43 views
1

我創建一個PHP腳本讀取的成千上萬的數據的Excel工作表&通過插入查詢將所有數據到MySQL數據庫。現在的問題是,Excel表格中的數據已經從數千到數百萬。所以現在運行這個腳本時發生超時。 我想知道沒有超時運行所有查詢的最佳解決方案是什麼?如何成功運行Bulk mysql查詢?

另外一兩件事,我用這個腳本首先舉辦一個網絡上,它結束了在很少的記錄超時,所以後來我執行這個腳本我的本地WAMP服務器&上它並存儲比主機更多的記錄,但仍然超時。所以如果這個解決方案可以在本地服務器上運行,那將是最好的。

+0

你能否告訴我們腳本本身? –

+0

另外這裏看看:http://stackoverflow.com/questions/7318768/process-very-big-csv-file-without-timeout-and-memory-error –

+0

http://blog.tjitjing.com/index .PHP/2008/02 /進口Excel的數據到MySQL的功能於5 easy.html – rahularyansharma

回答

1

我在腳本中使用此:

ini_set("memory_limit", "-1"); 
set_time_limit(0); 
+0

你剛剛救了我一天:D – Mathlight

1

如果你有幾百萬行的,你可能會使用不正確的工具。

如果可能,我建議使用LOAD DATA INFILEdocs)函數,它可以直接接受csv文件。這樣你就可以完全跳過PHP層的插入。如果你還需要將它添加到數據庫之前處理的文件,你可以嘗試將數據轉換成需要的格式,保存到CSV,然後使用上述功能。