2013-03-10 55 views
0

我面臨這個問題,首先我想說我對PHP和MySQL非常陌生。間歇性地獲取「最大執行時間」錯誤

Fatal error: Maximum execution time of 30 seconds exceeded in 
.........................\cdn\wished.php on line 3 

我不知道第3行有什麼錯,它只是有時只給出錯誤。這裏是我的代碼:

<?php 
//wished.php 
$CheckQuery = mysql_query("SELECT * FROM users WHERE ownerid='$user->id'"); 
$wished = 0; 
while($row = mysql_fetch_assoc($CheckQuery)) 
{ 
// echo $row['fname']."<br/>"; 
    $wished++; 
} 
echo $wished; 
?> 

這是完美的,當我運行這個在本地主機與XAMPP。只要我在我的域上託管我的應用並使用他們的數據庫,它就開始出現錯誤。

感謝每一個:)

+0

當你直接在mysql上運行查詢時,它是否快速? – 2013-03-10 11:08:49

+0

用戶是一張大桌子嗎? – christopher 2013-03-10 11:08:54

+0

或您的數據庫沒有迴應.... – 2013-03-10 11:09:18

回答

1

的問題是,SQL查詢的時間過長,你的生產PHP配置具有設置過低PHP腳本的時間限制。

在您可以添加更多的時間到PHP時限劇本的開頭:

http://php.net/manual/en/function.set-time-limit.php

set_time_limit(60);

例如增加的30多秒(或者使用0讓PHP腳本繼續運行)。

如果您的生產數據庫不同於您的開發數據庫(並且我假設生產有更多數據),那麼從用戶表中獲取所有內容可能是一個非常昂貴的調用。

+0

set_time_limit(0);會使它需要多長時間? – deerox 2013-03-10 11:24:52

+0

@deerox是的,這是正確的。腳本沒有時間限制(但它並不總是最好的解決方案)。您可能首先要調試數據庫調用,因爲可能會遇到這麼長時間的問題。如果您碰巧寫了某種無限循環,PHP腳本將不會停止運行,因爲腳本執行沒有時間限制。 – Stegrex 2013-03-10 11:28:11

+0

我在應用程序中有幾個循環以及非常感謝,使我清楚:) – deerox 2013-03-10 11:31:33