在我的應用程序之一,用戶可以上傳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)
,但他們都不似乎工作。
任何想法,我該如何解決上述問題。
- 非常感謝您的時間。
編輯:
我已經檢查了,文件在服務器上上傳。
我已經嘗試過,但仍然無法正常工作。 –
安全模式關閉? – Akira
是的。我已經檢查使用if(ini_get('safe_mode')) –