2013-04-25 120 views
0

我的查詢就沒事了,但我需要檢查是否有該ID重複,所以我使用超時的「對重複密鑰更新」

mysqli_query($link, " 
     INSERT INTO wsmdata VALUES ('', '".mysqli_real_escape_string($link, $_POST['wsmID'])."', 
'".mysqli_real_escape_string($link, $a[0])." ".mysqli_real_escape_string($link, $a[1])."', '".mysqli_real_escape_string($link, $a[2])."') 
     ON DUPLICATE KEY 
     UPDATE bar = '".mysqli_real_escape_string($link, $a[2])."'") or die (mysqli_error($link)); 

我有一個foreach循環日期/時間字段循環遍歷所有上傳的文件。它處理1008行到數據庫,但後來我得到:

Fatal error: Maximum execution time of 30 seconds exceeded in F:\XAMPP\htdocs\logsysteem\adddata.php on line 30 
+0

您可以發佈此查詢與您的foreach循環?你的查詢看起來沒問題。 – 2013-04-25 15:32:41

+0

文檔 - [set_time_limit](http://php.net/manual/en/function.set-time-limit.php)。 – Devart 2013-04-25 15:36:42

+0

如果您使用的是'mysqli_real_escape_string',那麼您做錯了。請使用[SQL佔位符](http://bobby-tables.com/php)和[bind_param](http://php.net/manual/en/mysqli-stmt.bind-param.php)來進行轉義。你這樣做的方式,如果你不小心錯過了一個轉義調用,你的整個應用程序可以被SQL注入漏洞破壞。 – tadman 2013-04-25 16:09:14

回答

2

這是因爲你沒有設置你的腳本的時間石灰。

你有兩個選擇,使其工作:
1 /使用set_time_limit()在你的PHP腳本的頂部
2 /在你php.ini配置文件

如果是ponctually一個的personnal腳本更改此值,我建議你使用第一種解決方案。

編輯:爲進一步吃茶閱讀本http://fr2.php.net/set_time_limit