Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-12-2022
marco3k marco3k is offline
Miembro
 
Registrado: feb 2015
Posts: 60
Poder: 10
marco3k Va por buen camino
Pagina php se cuelga al hacer consulta con transacciones mysqli

Hola, programo en php puro, uso mysql como db, cuando no usaba transacciones, es decir cuando usaba transacciones automaticas no tenia ese problema y las páginas php iba fluido, pero empece a necesitar actualizar 2 o mas tablas y he notado que en ciertas ocasiones se cuelga la página unos segundos y sale esa pantalla de pagina no encontrada, presionas F5 y se vuelve a restablecer. Debo suponer que mientras estan consultando los datos tambien se estan insertando datos en la tabla y supongo que ahi se genera ese error. Este es un ejemplo del codigo que empleo cuando uso transacciones:
Código PHP:
public function insertar(){
    
$conex $this->ObtenerConexion();
    try{
        
$conex->autocommit(false);
        
$conex->query("STAR TRANSACTION");
        
$sql="INSERT INTO TB_PAGO (REG_ID,PAGO_FECHA,PAGO_ANIO,PAGO_SI,PAGO_CP,PAGO_CHEQUE,PAGO_MONTO,PAGO_OBS,PAGO_SUSPENDIDO,BE_ID) ".
        
" VALUES ('$this->P_REG_ID','$this->P_PAGO_FECHA','$this->P_PAGO_ANIO','$this->P_PAGO_SI','$this->P_PAGO_CP','$this->P_PAGO_CHEQUE','$this->P_PAGO_MONTO','$this->P_PAGO_OBS',0,0)";        
        
$conex->query($sql);
        
$retorno=$this->actualizar_saldo($conex,$this->P_REG_ID);
        
//***

        
$this->P_MENSAJE_ERROR $conex->error;                                    
        if (!empty(
$this->P_MENSAJE_ERROR)) {
            
$error_original GetMensajeErrorx($conex->errno,$conex->error);
            throw new 
Exception($error_original);
        }
        
//***
        
if ($retorno==0) {
            throw new 
Exception('No se pudo consultar los pagos.');
        }                
        if (
$retorno==3) {
            throw new 
Exception('Hay saldo negativo.');
        }        
        
$conex->commit();
        
$this->P_RETORNO 1;
    }catch(
Exception $e){
        
$conex->rollback();
        
$this->P_RETORNO 0;
        if (empty(
$this->P_MENSAJE_ERROR)){
            
$this->P_MENSAJE_ERROR $e->getMessage();
        }
    }
finally{
        
$conex->autocommit(true);
    }
    return 
$this->P_RETORNO;


Estoy seguro que es por las transacciones el problema, entonces que puedo optimizar o que parametro podría cambiar en las transacciones para que no se cuelgue.

Gracias por la ayuda que me puedan brindar.
Responder Con Cita
  #2  
Antiguo 22-12-2022
marco3k marco3k is offline
Miembro
 
Registrado: feb 2015
Posts: 60
Poder: 10
marco3k Va por buen camino
Este es el mensaje que sale, luego pongo reintentar o presiono F5 y se reanuda normalmente, sólo sale de vez en cuando, pero es un poco molesto ese mensaje. Ah por cierto el sistema se ejecuta en una intranet.
Cita:
La conexión ha caducado.

El servidor xxx está tardando demasiado en responder.

El sitio podría estar no disponible temporalmente o demasiado ocupado. Vuelva a intentarlo en unos momentos.
Si no puede cargar ninguna página, compruebe la conexión de red de su equipo.
Si su equipo o red están protegidos por un cortafuegos o proxy, asegúrese de que Firefox tiene permiso para acceder a la web.
Gracias por cualquier ayuda que me puedan brindar.
Responder Con Cita
  #3  
Antiguo 16-01-2023
Avatar de Julián
Julián Julián is offline
Merodeador
 
Registrado: may 2003
Ubicación: en mi casa
Posts: 2.019
Poder: 10
Julián Va por buen camino
Así, a primera vista, diría que quizá sea "START" en lugar de "STAR".

Un saludo!
__________________
"la única iglesia que ilumina es la que arde"
Anonimo
Responder Con Cita
  #4  
Antiguo 20-01-2023
marco3k marco3k is offline
Miembro
 
Registrado: feb 2015
Posts: 60
Poder: 10
marco3k Va por buen camino
Cita:
Empezado por Julián Ver Mensaje
Así, a primera vista, diría que quizá sea "START" en lugar de "STAR".

Un saludo!

Gracias por la observación, ya lo actualice, pero de momento no salta esos mensajes que describi desde hace 1 semana, llegue a pensar q es por el volumen de datos que se consulta en rango de fechas, pero no estoy seguro. Si el mensaje vuelve lo comentare.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
hacer post en java a una pagina especifica gulder JAVA 0 25-04-2016 04:55:57
Fatal error: Class 'mysqli' not found alquimista_gdl PHP 3 25-01-2011 06:23:26
Con que componente Zeos puedo hacer Transacciones? rgstuamigo Varios 14 22-11-2008 15:33:40
Hacer una página por grupo (Crystal report) radge Impresión 1 25-07-2008 11:41:08
Consulta sobre transacciones Ezecool Conexión con bases de datos 3 08-05-2007 17:45:41


La franja horaria es GMT +2. Ahora son las 21:32:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi