Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/03/2018, 21:11
Avatar de xfxstudios
xfxstudios
 
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: ejecutar una funcion dentro de otra

para ello puedes trabajar con try catch

Código PHP:
Ver original
  1. public function loquesea(){
  2.     try{
  3.         //AQUI PRIMERA EJECUCIÓN DE TUSA CONSULTAS
  4.         $a = $this->_db->prepare("INSERT INTO encuestas (id, titulo, id_cargo, id_pais, id_departamento, id_provincia, id_distrito, fecha_encuesta, fecha_registro, usuario_registrador) VALUES (null, :titulo, :cargo, 1, :departamento, :provincia, :distrito, :fecha_enc, now(), '" . Session::get('id_usuario') . "')"
  5.             )->execute(array(
  6.                 ':titulo'           => $titulo,
  7.                 ':cargo'            => $cargo,
  8.                 ':departamento'     => $departamento,
  9.                 ':provincia'        => $provincia,
  10.                 ':distrito'         => $distrito,
  11.                 ':fecha_enc'        => $fecha_enc)
  12.             );
  13.        
  14.         if(!$a){
  15.             throw new Exception("AQUI EL ERROR GENERADO");
  16.             //Si se genera la excepcion, se corta automaticamente la ejecución de la secuencia, por ende no llegara a la siguiente funcion o peticion
  17.         }
  18.         return $this->segunda($id);//Aqui solicito la ejecución de la segunda funcion
  19.  
  20.     }catch(Exception $e){
  21.         $this->db->rollback();
  22.         return $e->getMessage();
  23.     }
  24. }

Ahora debes tomar en cuenta que esto:

$sql = "SELECT MAX(id) AS id FROM encuestas LIMIT 1";

podría traerte ciertos problemas al concurrir varios usuarios en la ejecución del código, sería bueno trabajar con un código personalizado a parte de la id de control primaria, de esa manera tendrías mayor control sobre las operaciones.
__________________
[email protected]
HITCEL