Foros del Web » Programando para Internet » PHP »

Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\bdintra\con

Estas en el tema de Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\bdintra\con en el foro de PHP en Foros del Web. Hola amigos!! Tengo un problema, al correr una pagina me sale este error: Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\bdintra\conexion.php on ...
  #1 (permalink)  
Antiguo 26/02/2009, 13:47
(Desactivado)
 
Fecha de Ingreso: enero-2009
Mensajes: 103
Antigüedad: 15 años, 10 meses
Puntos: 0
Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\bdintra\con

Hola amigos!! Tengo un problema, al correr una pagina me sale este error:
Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\bdintra\conexion.php on line 14

El detalle es que yo en un codigo php me estoy conectando a tres bases de datos o bien es lo mismo a tres servidores distintos constantemente, y me estoy asegurando de cerrar siempre la conexion antes de abrir otra. Sin embargo me sale siempre este error de un archivo conexion.php que cree exclusivamente para la conexion a la base de datos, de todas maneras aqui les dejo el codigo de la clase conexion.php para que lo vean y les señalo la linea 14 q es dond marca el error:

<?php
class conexiones
{

var $host;
var $usuario;
var $nombre_db;
var $contraseña;


function conectar ($host,$usuario,$contraseña,$nombre_db)
{

/*linea 14*/$conexion_db = mysql_connect("$host","$usuario","$contraseña")or die("No se pudo realizar la conexion");/*aqui termina la linea 14*/
$sele=mysql_select_db("$nombre_db",$conexion_db);
return $conexion_db;
}

function seleccion($cadena)
{
$this->peticion=mysql_query($cadena);
if ($this->peticion)
{
return ($this->peticion);
}else if (!$this->peticion)
{
echo "Error ! ";
}
}
}
?>

x fa ayudenme con este problema, he intentado cambiando a 60 segundos el max_execution_time = 30 ; del php.ini y nada me aparece el mismo error, que puedo hacer?? ayudnme plis
  #2 (permalink)  
Antiguo 26/02/2009, 14:07
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 9 meses
Puntos: 20
Respuesta: Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\

Es posible que no pueda conectar y que por eso exceda el máximo de tiempo.

Prueba con usar la variable como $contrasena en lugar de $contraseña ...
  #3 (permalink)  
Antiguo 26/02/2009, 15:32
(Desactivado)
 
Fecha de Ingreso: enero-2009
Mensajes: 103
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\

es muy poco probable que pueda ser porq no se conecte porque he ejecutado el mismo query pero conectandome a una sola base de datos y me lo hace todo bien, el problema es q ahora estoy conectandome a tres servidores distintos. ¿que otra sugerencia me puedas dar? gracias...
  #4 (permalink)  
Antiguo 26/02/2009, 16:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\

si estas usando una variable sola, no le pongas comillas!!

Código PHP:
$foo 'bar';

// MAL
echo "$foo";

// BIEN
echo "{$foo}MAN";

// EXCELENTE !
echo $foo
osea, las comillas están de sobra

(esto aplica aún, si la variable es un argumento)

te sugiero leer lo siguiente: http://www.forosdelweb.com/f18/como-...1/#post2414268
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 26/02/2009, 16:40
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\

mmm por q no antes de hacer la conexion verificas q no haya alguna existente ?
  #6 (permalink)  
Antiguo 27/02/2009, 10:51
(Desactivado)
 
Fecha de Ingreso: enero-2009
Mensajes: 103
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\

hola, bueno no he podido solucionar el problema aun. Ahora les tengo una pregunta. Como hago para no estar teniendo que cerrar una conexion a cada momento para poder abrir otra, es decir me explico, mes estoy conectando a dos servidores distintos y a sus respectivas bases de datos pero se que hay alguna manera q me permite no tener la necesidad de cerrar una conexion antes de iniciar en otra. Aqui les dejo un ejemplo de los que les quiero decir:

function radio($buscar)
{
$i=0;
/*me conecto al servidor principal*/
$host="10.8.5.195"; /*servidor*/
$usuario="root"; /*usuario*/
$contraseña="12345"; /*contraseña*/
$nombre_db="bdintra_v1"; /*base de datos*/

$conecta=new conexiones(); /*clase para conexion a la base de datos*/
$conectar=$conecta->conectar($host,$usuario,$contraseña,$nombre_db) ;
//$conecta=new conexiones();

if($buscar!=0 and $buscar!="")
{
$codrf_radio=substr("$buscar",0,1);
switch ($codrf_radio)
{
case 1:
$num_codrf=1;
break;
case 2:
$num_codrf=2;
break;
case 3:
$num_codrf=3;
break;
case 4:
$num_codrf=4;
break;
}
foreach($buscar as $a => $va1)
{
if($va1!=0 and $va1!="")
{
$cadena="SELECT * FROM tx_radios_instalados WHERE Corresponsal='$va1' and Radiobase!='$va1' and Radiobase like '$num_codrf%'";
$consulta=$conecta->seleccion($cadena);
while($pro=mysql_fetch_array($consulta))
{
$result[$a][$i]=$pro['Radiobase'];
$i=$i+1;
}
$i=0;
}
}
return $result;
}
$cerrar=mysql_close($conectar);
}
en este codigo tengo una funcion que invoco cuando necesito hacer una busqueda a base de datos especifica a una tabla. Pero en algun otro momento del codigo yo invoco a otra funcion que hace una consulta a una tabla en especifica pero de otra base de datos que esta en otro servidor, asi es el codigo:

function nomrad2($buscar)
{
/*Me conecto a la base de datos bdcel*/
$host="161.196.249.66";
$usuario="invitado";
$contraseña="invitado";
$nombre_db="bdcel";

$conecta=new conexiones();
$conectar=$conecta->conectar($host,$usuario,$contraseña,$nombre_db) ;
//$conecta=new conexiones();
if ($buscar!=0 and $buscar!="")
{
foreach($buscar as $a =>$va1)
{
foreach($va1 as $i => $va2)
{
$cadena="SELECT Nombre FROM adm_sitios WHERE CodRF='$va2'";
$consulta=$conecta->seleccion($cadena);
while($pro=mysql_fetch_array($consulta))
{
$result[$a][$i]=$pro['Nombre'];
}
}
}
return $result;
}
$cerrar=mysql_close($conectar);
}

Como ven siempre necesito conectarme a dos bases de datos diferentes en muchas ocasiones y creo q eso (abrir y cerrar conexion) todo el tiempo me esta generando q la pagina se tarde mucho para cargarse y me lanze el error de los 30 segundos y no me muestra nada. Tiene q haber alguna solucion para eso estoy seguro, por favor ayudenme, Que debo hacer?? denme sugerencias!!!
  #7 (permalink)  
Antiguo 27/02/2009, 11:09
Avatar de Sommy  
Fecha de Ingreso: septiembre-2008
Mensajes: 228
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\

Si usas mysql_connect() se cierran solas las conexiones al finalizar el script... Y si haces mysql_close() sin especificar el id cierra todas...

Quiza eso te ayude...

Saludos.
  #8 (permalink)  
Antiguo 27/02/2009, 12:04
(Desactivado)
 
Fecha de Ingreso: enero-2009
Mensajes: 103
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\

no te entiendo lo q quieres decir, yo solo utilizo una clase conexion.php q es el codigo q puse al principio, y cada q me quiero conectar a una base de datos hago esto:

/*me conecto al servidor principal*/
$host="10.8.5.195"; /*servidor*/
$usuario="root"; /*usuario*/
$contraseña="12345"; /*contraseña*/
$nombre_db="bdintra_v1"; /*base de datos*/

$conecta=new conexiones(); /*clase para conexion a la base de datos*/
$conectar=$conecta->conectar($host,$usuario,$contraseña,$nombre_db) ;
y hago mi consulta, ¿que es lo q me quieres decir tu?? q no hace falta q cierre la conexion si uso mysql_connect() en mi clase conexion.php??
  #9 (permalink)  
Antiguo 27/02/2009, 12:14
Avatar de Sommy  
Fecha de Ingreso: septiembre-2008
Mensajes: 228
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\

Bien, si es una clase mas facil aun. Usa un metodo destructor que desconecte...

algo asi:

Código PHP:
    #-#############################################
    # desc: cierro la conexion
    
private function close() {
        if(
$this->get_link() != "") {
            @
mysql_close($this->get_link());
        }
    }
    
    
#-#############################################
    # desc: Libera resultados
    
public function free_result($query_id=-1) {
        if(
$query_id != -1) {
            
$this->set_queryid($query_id);
        }
        
        if(
$this->get_queryid() != "") {
            @
mysql_free_result($this->get_queryid());
            
$this->set_queryid(null);
        }
    }
    
    
#-#############################################
    # desc: Clase destructora, se desconecta cuando finaliza
    
public function __destruct() {
        
$this->close();
        
$this->free_result();
    } 
Ponelo al final de la clase, por una cuestion de orden nomas.

Fijate si te ayuda, es funcion se ejecuta cada vez que se auto-desinstancia el objeto.

EDITO:

Me olvide de decirte que yo hago encapsulamiento y eso que ves como $this->get_queryId etc son setters y getters de propiedades privadas. Te paso estos que irian arriba de todo, tambien por una cuestion de orden.

Código PHP:
    //IDS que pasan de metodo a metodo
    
private $link_id;
    private 
$query_id;

    public function 
get_link(){
        return 
$this->link_id;
    }
    
    private function 
set_link($value){
        
$this->link_id $value;
    }
    
    private function 
get_queryid(){
        return 
$this->query_id;
    }
    
    private function 
set_queryid($value){
        
$this->query_id $value;
    } 
Si te llegan a tirar algun error decime, que capas me saltie algo.

Última edición por Sommy; 27/02/2009 a las 12:20
  #10 (permalink)  
Antiguo 27/02/2009, 12:39
(Desactivado)
 
Fecha de Ingreso: enero-2009
Mensajes: 103
Antigüedad: 15 años, 10 meses
Puntos: 0
hola! Puse tu codigo en mi clase conexion asi:

class conexiones
{

var $host;
var $usuario;
var $nombre_db;
var $contraseña;


function conectar ($host,$usuario,$contraseña,$nombre_db)
{
$conexion_db = mysql_connect("$host","$usuario","$contraseña")or die("No se pudo realizar la conexion");
$sele=mysql_select_db("$nombre_db",$conexion_db);
return $conexion_db;
}

function seleccion($cadena)
{
$this->peticion=mysql_query($cadena);
if ($this->peticion)
{
return ($this->peticion);
}else if (!$this->peticion)
{
echo "Error ! ";
}
}

//IDS que pasan de metodo a metodo
private $link_id;
private $query_id;

public function get_link(){
return $this->link_id;
}

private function set_link($value){
$this->link_id = $value;
}

private function get_queryid(){
return $this->query_id;
}

private function set_queryid($value){
$this->query_id = $value;
}
#-#############################################
# desc: cierro la conexion
private function close() {
if($this->get_link() != "") {
@mysql_close($this->get_link());
}
}

#-#############################################
# desc: Libera resultados
public function free_result($query_id=-1) {
if($query_id != -1) {
$this->set_queryid($query_id);
}

if($this->get_queryid() != "") {
@mysql_free_result($this->get_queryid());
$this->set_queryid(null);
}
}

#-#############################################
# desc: Clase destructora, se desconecta cuando finaliza
public function __destruct() {
$this->close();
$this->free_result();
}

}

y me sale este error: Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\bdintra\conexion.php on line 13
la linea 13 es esta:
$conexion_db = mysql_connect("$host","$usuario","$contraseña")or die("No se pudo realizar la conexion");

Sigue con lo mismo...

sabes que?? yo creo q me puedes ayudar con un codigo q me sirva para conectarme a dos bases de datos remotas, porque en realidad poniendome a pensar yo nunca me estoy conectando a la base de datos local sino a dos dos bases de datos q estan alojadas en dos servidores remotos, tu crees q me puedes ayudar con eso?? como me conecto a dos bases de datos remotas??

Última edición por GatorV; 27/02/2009 a las 14:17
  #11 (permalink)  
Antiguo 27/02/2009, 13:08
Avatar de Sommy  
Fecha de Ingreso: septiembre-2008
Mensajes: 228
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\

No tengo nada para eso y desconozco si existe, lo dudo. Lo que creo que el problema esta en tu windows, o algo... Fiate si no tenes algo que te bloquee la conexion, un firewall, antivirus, o que te la retrase... Que tan rapidos son esos servidores remotos? No estas trabajando de una manera comoda asi, no podes usar tu my-sql? o no podes subir a algun servidor linux tus paginas y probarlas ahi?

Insisto en que sospecho de windows o de esos servidores...

Fijate, lo mejor seria que tengas un linux, al menos una VM, pero quisa este muy lejos de tus intereses.
  #12 (permalink)  
Antiguo 27/02/2009, 13:18
(Desactivado)
 
Fecha de Ingreso: enero-2009
Mensajes: 103
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\

que problema vale, estoy metido en tremendo rollo con esto, lo q pasa es q yo he estado trabajando todo perfectamente conectandome siempre a mi base de datos local, el problema es q esa misma base de datos ha sido actualizada pero esa actualizacion estan en dos bases de datos q estan alojadas en otros servidoresy por ende ahora tengo q apuntar a esas dos bases de datos para actualizar. No creo q el problema sea windows porq como te digo todo me funciono bien cuando me conectaba a mi base de datos local, nunca me salia ese error, solo q ahora no apunto a mi base d datos local sino a esas dos bases q ya te mencione. Ni modo, vere como resuelvo, de todas maneras gracias...
  #13 (permalink)  
Antiguo 27/02/2009, 13:38
Avatar de Sommy  
Fecha de Ingreso: septiembre-2008
Mensajes: 228
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\

El servidor que pusiste parece no estar online... Le hice ping y no responde, ni solo ni con el puerto my-sql.

ping 10.8.5.195
ping 10.8.5.195:3360

proba haciendo lo mismo con el otro, deberia responderte si estan online.

Si no proba bajandote el heidi o el navicat y conectandote a traves de ellos... Si no podes es que no andan esos servidores.

Si actualizaron sus bases de datos y tenes contacto que te hagan un DUMP y segui trabajando en la tuya.

No se me ocurren mas salidas, suerte con eso.
  #14 (permalink)  
Antiguo 27/02/2009, 13:44
(Desactivado)
 
Fecha de Ingreso: enero-2009
Mensajes: 103
Antigüedad: 15 años, 10 meses
Puntos: 0
Gracias hermano, se me olvido decirte q esos dos servidores estan en una red local de una empresa, no estan en linea o internet como supogo q me estas sugeriendo... Gracias x el dato pero esa direccion IP: 10.8.5.195
es la direccion de un host o de un equipo de la empresa dond estoy trabajando, Gracias una vez mas...

Sommy porque eliminastes el otro tema?? eso estuvo mal hecho, no debistes hacer eso.

Última edición por GatorV; 27/02/2009 a las 14:31
  #15 (permalink)  
Antiguo 27/02/2009, 17:36
Avatar de Sommy  
Fecha de Ingreso: septiembre-2008
Mensajes: 228
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\

Ahh, me parecia que no eran externas, pero bueno... Como se hablo tanto de remoto... Es un acceso local en realidad, aunque nos ea tu maquina es local.

Ahora con respecto a eliminar tu tema, no lo hice... No soy moderador y si lo fuera tampoco lo hubiera hecho...

Saludos hermano!
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 14:43.