当为一个相对较小的查询调用mysql_query()时,我会得到PHP错误,所以我必须将限制设置为10。
Fatal error: Maximum execution time of 120 seconds exceeded in C:\xampp\htdocs\data.php on line 19
我已经从代码中删除了循环,代码似乎挂在mysql_query()函数上。
mysql_connect("192.168.50.250",$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query = "SELECT T.Tag as 'Device', y.alarmdesc as 'AlarmType', a.Active, a.Cleared FROM gencore.gc_alarms a JOIN ist.Tree T ON(T.DeviceId = a.DeviceId) JOIN GenCore.gc_alarmtypes y ON (a.alarmType = y.aid) LIMIT 10";
$result=mysql_query($query);
$num=mysql_numrows($result);
mysql_close();
?>
<table class="sortable resizable editable tableStyle2">
<tr class="headerStyle">
<th>Device</th>
<th>AlarmType</th>
</tr>
<?php
$i=0;
while ($i < $num)
{
$f1=mysql_result($result,$i,"Device");
$f2=mysql_result($result,$i,"AlarmType");
?>
<tr>
<td><?php echo $f1; ?></td>
<td><?php echo $f2; ?></td>
</tr>
<?php
$i++;
}
?>
</body>
</html>
查询在其他地方执行得非常快,而且只有340行,有没有人有从DB检索小表的指针?
问候约翰
发布于 2011-04-06 13:36:16
您可以使用mysql.connect_timeout
键在php.ini
中扩展超时。
我还注意到,mysql_close()
应该在使用mysql_result
之后定位,并且您有一个错误:mysql_numrows
应该是mysql_num_rows
发布于 2011-04-06 13:39:28
如果无法及时完成查询,请尝试在SHOW FULL PROCESSLIST;
控制台中运行MySQL命令。这将显示任何可能阻止查询写入或读取数据的锁。您的问题听起来可能是在您试图读取的表上有一个活动锁。
https://stackoverflow.com/questions/5567012
复制相似问题