Consulta Procedimiento Almacenado con PHP.
Publicado por Nicolás Ignacio (21 intervenciones) el 23/06/2015 22:26:34
Estimados! Antes que nada los saludo!
Tengo un Procedimiento Almacenado sencillo ya funcionando bien, este es el código:
Lo estoy llamando mediante PDO de la siguiente manera en un método:
Lo que quiero saber es cómo puedo mostrar el mensaje que me lanza el procedimiento en la validación en el SELECT, o de qué manera puedo mostrar que la transacción se realizó correctamente. Esto se procesa y luego va a un archivo que funciona como vista.
Desde ya muchas gracias y saludos nuevamente!
Tengo un Procedimiento Almacenado sencillo ya funcionando bien, este es el código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
DELIMITER $$
CREATE PROCEDURE `sp_insert_headerddjjpadron`(
in codArchivo_ varchar(100),
in tiporegHeader_ varchar(45),
in codregHeader_ varchar(45),
in indprocHeader_ varchar(45),
in fecprocHeader_ varchar(45),
in auditoriaUsuario_ varchar(100)
)
BEGIN
declare error int;
start transaction;
if(exists(select * from headerDdjjPadron WHERE fecprocHeader = fecprocHeader_ )) then
select 'El Periodo que desea procesar ya existe en la Base de Datos';
else insert into headerDdjjPadron values (
null,
codArchivo_,
tiporegHeader_,
codregHeader_,
indprocHeader_,
fecprocHeader_,
null,
auditoriaUsuario_,
now(),
null
);
end if;
set error = (select @error);
if (error > 0) then
rollback;
else
commit;
end if;
END
Lo estoy llamando mediante PDO de la siguiente manera en un método:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public function proccessHeaderPadronEmpresas($r, $c){
$this->codigoarchivo = $c;
$this->user = "usuariodeprueba";
$this->data = [
'codarchivo' => $this->codigoarchivo,
'tiporeg' => substr($r, 0, 2),
'codreg' => substr($r, 2, 8),
'indproc' => substr($r, 10, 11),
'fecproc' => str_replace("-", "", substr($r, 23, 10))
];
//Inserto con Procedimiento Almacenado.
$this->gbh = new ConDB();
try {
$this->gsent = $this->gbh->prepare("CALL sp_insert_headerddjjpadron(?,?,?,?,?,?)");
$this->gsent->bindValue(1, "DDJJ-PADRON", PDO::PARAM_STR);
$this->gsent->bindValue(2, $this->data['tiporeg'], PDO::PARAM_STR);
$this->gsent->bindValue(3, $this->data['codreg'], PDO::PARAM_STR);
$this->gsent->bindValue(4, $this->data['indproc'], PDO::PARAM_STR);
$this->gsent->bindValue(5, $this->data['fecproc'], PDO::PARAM_STR);
$this->gsent->bindValue(6, $this->user, PDO::PARAM_STR);
$this->gsent->execute();
} catch(PDOExecption $e) {
print "Error!: " . $e->getMessage() . "</br>";
}
}
Lo que quiero saber es cómo puedo mostrar el mensaje que me lanza el procedimiento en la validación en el SELECT, o de qué manera puedo mostrar que la transacción se realizó correctamente. Esto se procesa y luego va a un archivo que funciona como vista.
Desde ya muchas gracias y saludos nuevamente!
Valora esta pregunta


0