para ello puedes trabajar con try catch
Código PHP:
Ver originalpublic function loquesea(){
try{
//AQUI PRIMERA EJECUCIÓN DE TUSA CONSULTAS
$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') . "')"
':titulo' => $titulo,
':cargo' => $cargo,
':departamento' => $departamento,
':provincia' => $provincia,
':distrito' => $distrito,
':fecha_enc' => $fecha_enc)
);
if(!$a){
throw new Exception("AQUI EL ERROR GENERADO");
//Si se genera la excepcion, se corta automaticamente la ejecución de la secuencia, por ende no llegara a la siguiente funcion o peticion
}
return $this->segunda($id);//Aqui solicito la ejecución de la segunda funcion
}catch(Exception $e){
$this->db->rollback();
return $e->getMessage();
}
}
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.