2013-03-10 57 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