我正在学习php MVC,在我的显示模型中,我遇到了这个致命的错误
致命错误:第36行的C:\xampp\htdocs\kowab\app\models\display.php
超过了30秒的最长执行时间
第36行是$data = mysql_fetch_array($sql);
答案 0 :(得分:2)
要删除此错误,您必须在max_execution_time
中增加php.ini
。之后你必须重新启动apache。
或者您在脚本顶部添加ini_set('max_execution_time', x)
。
但您应该首先考虑优化查询和代码。
答案 1 :(得分:2)
你是否正在观看阿拉伯语男子的教程? (阿里哈姆迪)
我经历了同样的事情,我用这种方式做了我对显示类的声明:
else
{
$num = mysql_num_rows($sql);
while ($num > 0)
{
$data = mysql_fetch_array($sql);
$num--;
}
}
return $data;
}
}
?>
它没有解决问题,但它至少带回了这个形式。所以我继续观看其余的教程并跟随他,以便稍后我解决这个问题。我写了他并等待他的回应。一旦他这样做,我会用解决方案回复你。
答案 2 :(得分:1)
通过制作第一行代码来延长执行时间:
set_time_limit($x);
$ x应该是运行脚本的最长时间(秒)。值为0将使脚本无限运行。
http://us1.php.net/set_time_limit
注意:您在第36行达到30秒的时间限制很奇怪,因此您的代码可能无法识别,因为您尚未发布
答案 3 :(得分:1)
set_time_limit($seconds);
每the docs。如果您为0
传递$seconds
的值,则没有时间限制。
答案 4 :(得分:1)
您可以通过在 php.ini 中查找max_execution_time
来增加时间,但在此之前您需要知道导致此问题的原因。检查您的查询可能有一些循环或它返回一个巨大的数据
答案 5 :(得分:1)
这是我的模特
//显示
class display extends awebarts {
public function __construct($tablename) {
$this->tablename= $tablename;
$this->connectToDb();
$this->getData();
$this->close();
}
function getData() {
$query = "SELECT * FROM $this->tablename ORDER BY `ID` DESC LIMIT 1";
if(!$sql = mysql_query($query))
{
throw new Exception (mysql_error());
}
else {
$num= mysql_num_rows($sql);
while($num >0)
{
$data= mysql_fetch_array($sql);
}
}
return $data;
}
}
>``