Foros del Web » Programando para Internet » PHP »

error Fatal error: Maximum execution time of 30 seconds exceeded

Estas en el tema de error Fatal error: Maximum execution time of 30 seconds exceeded en el foro de PHP en Foros del Web. Hola muchachos, necesito q me ayuden a como hago para corregir este error: Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\bdintra_nueva\conexion.php on ...
  #1 (permalink)  
Antiguo 04/03/2009, 15:45
(Desactivado)
 
Fecha de Ingreso: enero-2009
Mensajes: 103
Antigüedad: 11 años, 1 mes
Puntos: 0
error Fatal error: Maximum execution time of 30 seconds exceeded

Hola muchachos, necesito q me ayuden a como hago para corregir este error: Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\bdintra_nueva\conexion.php on line 21

El detalle es q tengo un archivo php de unas 2000 lineas, y en ese archivo estoy constantemente conectandome a base de datos, me imagino q eso es lo q me esta causando el retardo en el tiempo de ejecucion y no muestra la pagina, como resuelvo eso problema??
Gracias!
  #2 (permalink)  
Antiguo 04/03/2009, 15:51
 
Fecha de Ingreso: marzo-2009
Mensajes: 39
Antigüedad: 10 años, 11 meses
Puntos: 2
Respuesta: error Fatal error: Maximum execution time of 30 seconds exceeded

Saludos lerry

BIen ese problema se suscita en dos casos, el primero cuando una consulta esta mal escrita, o que si, exisitiese varios contadores anidados u similar a ello,

para ello tienes dos alternativas de solucion, para la opcion 1 que optimices tu consultas o consultas, y que no tengas varios contadores anidados, y la otra solucion es que configures el tiempo maximo de ejecucion de consultas en el archivo de configuracion del mysql.

Última edición por GatorV; 04/03/2009 a las 16:00
  #3 (permalink)  
Antiguo 04/03/2009, 16:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 9 meses
Puntos: 2135
Respuesta: error Fatal error: Maximum execution time of 30 seconds exceeded

Trata de solo conectarte 1 sola vez a la base de datos y usar esa conexión en todo el script.

Saludos
  #4 (permalink)  
Antiguo 04/03/2009, 16:27
(Desactivado)
 
Fecha de Ingreso: enero-2009
Mensajes: 103
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: error Fatal error: Maximum execution time of 30 seconds exceeded

Gatorv,
en efecto me estoy conectando una sola vez a la base de datos, pero dentro de esa conexion estoy haciendo muchas consultas q son estrictamente necesarias para efectos de lo q estoy haciendo...

gsitperu,
entiendo lo q me dices sobre optimizar mis consultas tratando de hacer q esas consultas no las tenga en ciclos anidados, tu me dices algo como esto, te pongo un ejemplo de lo q tengo:

/*busco los nombres de las radiobases, es decir, servicio final*/
if($finaLB!=0 and $finaLB!="")
{
foreach($finaLB as $a => $va1)
{
foreach($va1 as $i => $va2)
{
foreach($va2 as $j => $va3)
{
$cadena="SELECT Nombre FROM adm_sitios WHERE CodRF='$va3'";
$consulta=$conecta->seleccion($cadena);
$ho=mysql_fetch_array($consulta);
$nomfinlb[$a][$i][$j]=$ho['Nombre'];
}
}
}
}
ese ejemplo es solamente uno de los tantos casos q tengo en mi archivo php, ahora me gusta mas la segunda opcion, cambiarle el maximo tiempo de ejecucuion en php. ini no??
hice esto:

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

max_execution_time = 240 ; Maximum execution time of each script, in seconds

Sin embargo sigo con el problema, q me puedes recomendar???
  #5 (permalink)  
Antiguo 04/03/2009, 16:36
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.001
Antigüedad: 11 años, 6 meses
Puntos: 2197
Respuesta: error Fatal error: Maximum execution time of 30 seconds exceeded

Carga todos los nombre en una matriz.

Código php:
Ver original
  1. $nombres = array();
  2. $cadena = 'SELECT CodRF, Nombre FROM adm_sitios';
  3. $consulta = $conecta->seleccion($cadena);
  4. while(list($codrf, $nombre) = $mysql_fetch_row($consulta)) {
  5.     $nombres[$codrf] = $nombre;
  6. }
  7. // Aqu puedes hacer tu bucle sin requerir tanto la base de datos

Hay solo un nombre para cada CodRF?
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 04/03/2009, 16:52
(Desactivado)
 
Fecha de Ingreso: enero-2009
Mensajes: 103
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: error Fatal error: Maximum execution time of 30 seconds exceeded

Triby! Si solo un nombre para cada CodRF, pero ese codigo q me pusistes ahi me sirve para guardar en una matriz todos los nombres son su CodRF respectivo??
  #7 (permalink)  
Antiguo 04/03/2009, 17:02
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.001
Antigüedad: 11 años, 6 meses
Puntos: 2197
Respuesta: error Fatal error: Maximum execution time of 30 seconds exceeded

Asi es, y cada que necesites un nombre lo obtienes con $nombres[$variable_codigo]
__________________
- León, Guanajuato
- GV-Foto
  #8 (permalink)  
Antiguo 04/03/2009, 17:24
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 11 años, 9 meses
Puntos: 11
Respuesta: error Fatal error: Maximum execution time of 30 seconds exceeded

El problema no es el máximo tiempo de ejecución de mysql sino de php.
Se soluciona colocando esta linea al principio de tu script php:


Código PHP:
set_time_limit($segundos); 
$segundos es el tiempo que ahora tienes en 30. Pon un número mayor.

Nota:
-Utiliza mejor mysql_fetch_assoc en vez de mysql_fetch_array, ya que este devuelve un array más pequeño, pruébalo.
-El campo CodRF es índice o clave primaria de tu tabla mysql? debería serlo.

Saludos,
  #9 (permalink)  
Antiguo 05/03/2009, 07:42
(Desactivado)
 
Fecha de Ingreso: enero-2009
Mensajes: 103
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: error Fatal error: Maximum execution time of 30 seconds exceeded

hola xbx!! ese era el problema mi hermano, lo cambie a 60 segundos y ahora si me muestra la pagina, Gracias, gracias!!
  #10 (permalink)  
Antiguo 05/03/2009, 09:12
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 12 años, 4 meses
Puntos: 5
Respuesta: error Fatal error: Maximum execution time of 30 seconds exceeded

De todas formas pienso que la aclaración que te hace Triby es totalmente válida, tenla en cuenta
salu2
  #11 (permalink)  
Antiguo 05/03/2009, 10:54
(Desactivado)
 
Fecha de Ingreso: enero-2009
Mensajes: 103
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: error Fatal error: Maximum execution time of 30 seconds exceeded

ahh si claro, de hecho estaba comenzando hacer mis consultas como me sugerio Triby, pero al ver q con el set_time_limit($segundos); solucione el problema lo deje asi, cuando al cualquiera le suceda este error de tiempo de ejecucion no dude en aplicar set_time_limit($segundos); es la mejor solucion porq te ahorras la preocupacion de estar optimizando tus consultas... Gracias x sus Sugerencias!!!
  #12 (permalink)  
Antiguo 05/03/2009, 13:12
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.001
Antigüedad: 11 años, 6 meses
Puntos: 2197
Respuesta: error Fatal error: Maximum execution time of 30 seconds exceeded

Cita:
Iniciado por lerry
es la mejor solucion porq te ahorras la preocupacion de estar optimizando tus consultas
Seguro?... eso esta bien si hablas de un sitio en desarrollo donde no importa si un proceso tarda mas de lo debido, pero en un sitio de produccion (ya publicado) vas a saturar el servidor MySQL y consumir muchos mas recursos de los necesarios, por lo que los resultados seran impredecibles como caidas del servidor o, si estas en un hosting compartido, suspension y/o cancelacion del sitio.
__________________
- León, Guanajuato
- GV-Foto
  #13 (permalink)  
Antiguo 05/03/2009, 13:54
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 12 años, 4 meses
Puntos: 5
Respuesta: error Fatal error: Maximum execution time of 30 seconds exceeded

Cita:
Iniciado por lerry Ver Mensaje
no dude en aplicar set_time_limit($segundos); es la mejor solucion porq te ahorras la preocupacion de estar optimizando tus consultas... Gracias x sus Sugerencias!!!
De momento te ahorras eso, pero igual te vendran muy pronto a la mente posibles caidas de tu server, ya que lo estaras saturando innecesariamente.
La cuestion no esta en resolver el problema lo mas rapido que se pueda, sino en, cada vez que sea posible, optar por la mejor solucion
salu2
  #14 (permalink)  
Antiguo 05/03/2009, 14:04
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 11 años, 9 meses
Puntos: 11
Respuesta: error Fatal error: Maximum execution time of 30 seconds exceeded

Cita:
Iniciado por Triby Ver Mensaje
Seguro?... eso esta bien si hablas de un sitio en desarrollo donde no importa si un proceso tarda mas de lo debido, pero en un sitio de produccion (ya publicado) vas a saturar el servidor MySQL y consumir muchos mas recursos de los necesarios, por lo que los resultados seran impredecibles como caidas del servidor o, si estas en un hosting compartido, suspension y/o cancelacion del sitio.
Tienes toda la razón del mundo. Yo administro dos servidores dedicados y les puedo asegurar que mi primer nombre es Optimización y el segundo Rendimiento.

Saludos,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:26.