2012-10-31 92 views
1

我使用Zend框架與Mysql。我的應用程序將csv文件中的數據加載到mysql數據庫中。該表有兩列(idname)。應用程序使用file_get_contents讀取csv文件並使用Zend_Db_Table的$ this-> insert($ data)。該文件具有與該表類似的兩列。Zend框架 - 只插入少於500行

我面臨的問題是,在插入數據時,它只會插入大約500行。剩餘行不會插入到數據庫中。瀏覽器中沒有顯示錯誤,應用程序沒有任何問題。我嘗試了不同的數據,但問題是一樣的。

$file = file_get_contents($filename, FILE_USE_INCLUDE_PATH); 
$lines = explode("\n", $file); 
$i=1; 
for($c=1; $c < (count($lines)-1); $c++) { 
list($field1, $field2) = explode(",", $lines[$i]); 
$borrower= new Application_Model_DbTable_TempB(); 
$borrower->uploadborrower($field1, $field2); 
$i++; 

的uploadborrower功能只是使數組$的數據,並通過使用this->insert($data)插入 - 一個

誰能幫我找到問題的所在,如何解決這個問題?

+0

某些源代碼會幫助:) – burntblark

+0

$ file = file_get_contents($ filename,FILE_USE_INCLUDE_PATH); $ lines = explode(「\ n」,$ file); // $ i = 1; ($ c = 1; $ c <(count($ lines)-1); $ C++){list1($ field1,$ field2)= explode(「,」,$ lines [$ i]); $ borrower = new Application_Model_DbTable_TempB(); $ borrower-> uploadborrower($ field1,$ field2); $ i ++; uploadborrower函數只需創建數組$ data,然後使用this-> insert($ data) – Ajeet

+0

來插入,當然,問題只在於插入。當我讀取文件並僅在瀏覽器中顯示時沒有問題。 – Ajeet

回答

1
$file = file_get_contents($filename, FILE_USE_INCLUDE_PATH); 
$lines = explode("\n", $file); 
set_time_limit(0); 
$i=1; 
for($c=1; $c < (count($lines)-1); $c++) { 
list($field1, $field2) = explode(",", $lines[$i]); 
$borrower= new Application_Model_DbTable_TempB(); 
$borrower->uploadborrower($field1, $field2); 
$i++; 
+0

我會建議在代碼的開頭移動set_time_limit(0)。通常情況下,本地文件系統中的文件不應該有任何問題,但是如果CSV文件非常大並且從遠程URL加載,則可能需要很多時間,並且可能會再次出現超時問題。 –

+0

謝謝Parash .... – Ajeet

1

它可能是一個超時問題?如果CSV很大,可能會發生。

嘗試:

set_time_limit(0); 

前執行代碼。

+0

謝謝大家!它的工作現在。 – Ajeet

+0

請分享解決方案。你可以寫它作爲答案... – burntblark