woltan
13.09.2010, 18:14:04
witam mam fatal error
prosze o pomoc

Fatal error: Maximum execution time of 30 seconds exceeded in /home/xxx/ftp/xxx/db.php on line 62
jesli pomoc bedzie skuteczna mozliwe male wnagrodzenie

co robic?
gg: 25943441
yevaud
13.09.2010, 18:19:49
woltan
13.09.2010, 19:13:03
tylko ze mi to nic nie daje bo nie umiem php, prosilbym o pomoc bardziej szczegolową:
tr@k
13.09.2010, 19:48:01
Pokaż zawartość db.php, z fusów mamy wróżyć?
woltan
13.09.2010, 19:50:36
<?
function db_open ()
{
$link=mysql_connect(DB_HOST,DB_USER,DB_PASS)or die('Bł±d poł±czenia z serwerem '.DB_USER.'@'.DB_HOST.')');
mysql_select_db (DB_NAME) or die ('Bł±d poł±czenia z baz± ('.DB_NAME.')');
return ($link);
}
function db_close($link,$result='')
{
if($result!='') mysql_free_result($result);
mysql_close($link);
}
function db_insert($quer)
{
$link=db_open();
@mysql_query($quer);
$result=mysql_insert_id($link);
db_close($link);
return($result);
}
function db_delete($klucz,$wartosc,$tabela)
{
$link=db_open();
$quer="DELETE FROM `$tabela` WHERE `$klucz` = '$wartosc' LIMIT 1";
$result=@mysql_query($quer)or die('Bł±d w zapytaniu: '.$quer);
$result=mysql_affected_rows($link);
db_close($link);
return($result);
}
function db_select($quer)
{
$link=db_open();
$result=@mysql_query($quer)or die('Bł±d w zapytaniu: '.$quer);
if (mysql_affected_rows($link)==0)$dane=null;
else if (mysql_affected_rows($link)>1)
{
while ($wiersz = mysql_fetch_array($result))
{
if (!$dane) $dane=array($wiersz);
else {$dane1=array($wiersz); $dane=array_merge($dane,$dane1); }
}
}else $dane=@mysql_fetch_array($result);
db_close($link);
return($dane);
}
function db_query($quer)
{
$link=db_open();
$dane=0;
if (substr_count($quer,'select')>0 || substr_count($quer,'SELECT')>0)
{
$result=@mysql_query($quer);
if($result>0)
while ($wiersz=@mysql_fetch_assoc($result))
{
if(!$dane)$dane=array($wiersz);
else {$dane1=array($wiersz); $dane=array_merge($dane,$dane1);}
}else return(0);
}
else{ @mysql_query($quer); $dane=mysql_affected_rows($link); }
db_close($link);
return($dane);
}
function db_num_rows ($quer)
{
$link=db_open();
$result=@mysql_query($quer)or die('Bł±d w zapytaniu: '.$quer);
$result=mysql_num_rows($result);
db_close($link);
return($result);
}
function db_one($quer)
{
$link=db_open();
$result=@mysql_query($quer)or die('Bł±d w zapytaniu: '.$quer);
$result=mysql_result($result,0);
db_close($link);
return($result);
}
?>
tr@k
13.09.2010, 20:26:43
Prawdopodobnie ilość danych zwracanych przez zapytanie jest tak duża, że skrypt nie jest w stanie ich przetworzyć.
Inną przyczyną może być duże obciążenie serwera, stąd przekroczony czas wykonania skryptu.
Sprawdź zapytanie, które jest wykonywane przed wystąpieniem błędu i zobacz ile wyników zwróci np. w phpmyadmin
IceManSpy
13.09.2010, 23:01:59
Jak masz początek tego pliku:
<?
function db_open ()
{
$link=mysql_connect(DB_HOST
,DB_USER
,DB_PASS
)or
die('Błąd połączenia z serwerem '.DB_USER
.'@'.DB_HOST
.')'); return ($link);
}
To wstaw sobie tą linijkę: set_time_limit(0) na sam początek:
<?
function db_open ()
{
$link=mysql_connect(DB_HOST
,DB_USER
,DB_PASS
)or
die('Błąd połączenia z serwerem '.DB_USER
.'@'.DB_HOST
.')'); return ($link);
}
Jeśli jednak w przyszłości chcesz wrzucić ten skrypt + bazę na serwer to możesz zarżnąć go takim długim czasem skryptu
piotr94
14.09.2010, 16:15:08
komunikat ten oznacza, że skrypt wykonywał się dłużej niż 30s.
Jeśli działasz na własnym serwerze zmień sobie ten parametr na większy, lub zoptymalizuj zapytania
Cysiaczek
14.09.2010, 20:02:23
Przenoszę i zamykam. Aby temat został otwarty, proszę się skontaktować z moderatorem wraz z obietnicą poprawienia błędów.
1. Giełda ofert, albo ...
2. bbcode + opis problemu i jak z nim walczyłeś. Wtedy może wisieć otwarte
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.