Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Cakephp 3 Como obtener el último query ejecutado

Estas en el tema de Cakephp 3 Como obtener el último query ejecutado en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Estoy trabajando en manejar las excepciones en cakephp 3 cuando ejecuto consultas a la base de datos. Me gustaría obtener el último query ejecutado para ...
  #1 (permalink)  
Antiguo 05/09/2015, 22:13
 
Fecha de Ingreso: noviembre-2010
Ubicación: El Salvador
Mensajes: 44
Antigüedad: 13 años, 5 meses
Puntos: 6
Cakephp 3 Como obtener el último query ejecutado

Estoy trabajando en manejar las excepciones en cakephp 3 cuando ejecuto consultas a la base de datos.

Me gustaría obtener el último query ejecutado para cuando se dispare una excepción incluirla en una notificación por correo a un administrador. Estoy usando mysql así que el código del error sería muy útil obtenerlo también si es posible.

Ahorita mi código esta así:

Código PHP:
if($this->request->is('post')){
      
$opciones=$this->request->data;
      
      
$configsTable TableRegistry::get('Configs');      
            
      try{        
                       
        
$configsTable->connection()->transactional(function() use($configsTable$opciones){
          foreach (
$opciones as $llave => $opcion) {
            
$q $configsTable->find('all', [
              
'conditions' => [
                
'Configs.nombre' => $llave
              
]
            ]);
            
$reg $q->first();
            
            if (empty(
$reg)) {
              
$data = array();
              
$data['nombre'] = $llave;
              
$data['valor'] = $opcion;

              
$entity $configsTable->newEntity($data);
              

              if (!
$configsTable->save($entity, ['atomic' => false])) {
                
                
                
/********tratando de cachar el error de base de datos aqui*****/                
                
                
throw new Exception(__('Error al actualizar los ajustes'));
              }
              
            }else{
              
$u $configsTable->updateAll(['valor'=>$opcion], [
                
'id'=>$reg->id
              
]); 

              if(!
$u){                                 
                
                
/********tratando de cachar el error de base de datos aqui*****/    
               
                
                
throw new Exception(__('Error al actualizar los ajustes'));
              }
            }
          }
        });
        
        
$this->Flash->success(__('Ajustes actualizados'),[
          
'params'=>['class'=>'alert-absolute timed''tiempo'=>5]
        ]);
        
      } catch (
PDOException $ex) {
        
$this->Flash->error($ex->getCode().' - '.$ex->getMessage(),[
          
//'params'=>['class'=>'alert-absolute timed', 'tiempo'=>5]
        
]);
      } catch (
Exception $ex){
        
$this->Flash->error($ex->getMessage(),[
          
//'params'=>['class'=>'alert-absolute timed', 'tiempo'=>5]
        
]);
      }
    } 
Todavía ando buscando en la web de cakephp por algo que me ayude. Gracias de antemano.

Etiquetas: cakephp, mysql, php
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 00:59.