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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-12-2022
marco3k marco3k is offline
Miembro
 
Registrado: feb 2015
Posts: 61
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
 



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 23:34:58.


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