PHP MySQL небольшой тайм-аут запроса, необходимо установить ограничение на 10 - PullRequest
3 голосов
/ 06 апреля 2011

Я получаю ошибки тайм-аута PHP при вызове mysql_query () для относительно небольшого запроса, поэтому я должен установить ограничение на 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 строк. какие-нибудь указатели, как извлечь небольшую таблицу из БД?

С уважением Johan

Ответы [ 2 ]

3 голосов
/ 06 апреля 2011

Вы можете увеличить время ожидания с помощью клавиши mysql.connect_timeout в php.ini.

Я также заметил, что mysql_close() должен быть позиционирован после использования mysql_result, и у вас есть опечатка: mysql_numrowsбыть mysql_num_rows

1 голос
/ 06 апреля 2011

Если у вас возникли проблемы с запросами, которые не были выполнены вовремя, попробуйте выполнить команду SHOW FULL PROCESSLIST; в консоли MySQL. Это покажет вам любые блокировки, которые могут помешать вашему запросу записать или прочитать данные. Ваши проблемы звучат так, как будто на столе вы пытаетесь прочитать активную блокировку.

...