2013-07-23 132 views
0

在我的應用程序之一,用戶可以上傳CSV文件(|分隔的字段),上傳我存儲文件的全部內容在臨時表後(我新上傳每次截斷此表,以便它包含當前文件數據)。之後,我遍歷該表的每一行,並根據業務邏輯執行一些數據庫操作。PHP連接超時問題

將下面的代碼說明這一點:

if(isset($_POST['btn_uploadcsv']))  
{   
$filename = $_FILES["csvupload"]["name"]; 
$uploads_dir = 'csvs'; //csv files... 
$tmp_name = $_FILES["csvupload"]["tmp_name"]; 
$name = time(); 
move_uploaded_file($tmp_name, "$uploads_dir/$name"); 

$csvpath = "$uploads_dir/$name"; 

$row = 0; 
$emptysql = "TRUNCATE TABLE `temp`"; 
$connector->query($emptysql); 

if (($handle = fopen($csvpath, "r")) !== FALSE) { 
    $str_ins = ""; 
    while (($data = fgetcsv($handle, 1000, "|")) !== FALSE) { 
        /* 
        *  Here I am getting the column values to be store in the 
        *  the table, using INSERT command 
        */ 
        unset($data); 
    } 
      fclose($handle); 
} 

    /*Here I am selecting above stored data using SELECT statement */ 

for($j=0;$j<count($allrecords);$j++) 
{ 
     echo "In the loop"; 
     /*If I use echo statement for debugging it is working fine*/ 

     //set_time_limit(300); 
     /* I have tried this also but it is not working*/ 

     if(!empty($allrecords[$j]['catid'])) 
     { 
     // Here is my business logic which mailny deals with 
     // conditional DB operation  
     } 

     echo "Iteration done."; 
     /*If I use echo statement for debugging it is working fine*/       
} 
} 

問題是,當我在服務器上它給服務器超時錯誤執行aboe腳本。但是,當我測試我的本地主機上面的腳本,工作正常。

此外,如代碼中所述,如果我使用echo語句進行調試,那麼它工作正常,當我刪除它開始給連接超時問題。

我已經試過set_time_limit(300)set_time_limit(0),但他們都不似乎工作。

任何想法,我該如何解決上述問題。

- 非常感謝您的時間。

編輯:

我已經檢查了,文件在服務器上上傳。

回答

0
set_time_limit 

變化

ini_set("max_execution_time",300); 

當的max_execution_time沒有在php.ini中的set_time_limit有效設置。

+0

我已經嘗試過,但仍然無法正常工作。 –

+0

安全模式關閉? – Akira

+0

是的。我已經檢查使用if(ini_get('safe_mode')) –