Paramètre OUT dans procedure stockée
bonjour,
je n'arrive pas à afficher le message d'erreur ,de mysql, sur ma page php.
j'utilise une procédure stockée afin d'exécuter ma requette sql voici ma procedure stockée:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| DROP PROCEDURE IF EXISTS insertClient3 $$
CREATE PROCEDURE insertClient3 ( in_id_personne ,out error_status int)
BEGIN
declare duplicate_key_error condition for 1022;
declare continue handler for duplicate_key_error
begin
rollback;
set error_status=1;
set out_msg="duplication de la clé primaire table personnes";
end;
start transaction;
insert into Clients (idpersonne)
values (in_id_personne);
commit;
END $$ |
et voici mon code php:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| $sql= "call insertClient3(?,@numero)";
$stmt=$mysqli->prepare ($sql);
if ($mysqli->errno)
{
die($mysqli->errno.":: ".$mysqli->error);
printf("erreur ligne 64");
}
$stmt->bind_param("s",$nom);
$stmt->execute();
$stmt->close();
$result=$mysqli->query("SELECT @numero AS num");
$row=$result->fetch_object();
printf($row->num); |
si quelqu'un peut m'aider à afficher le message d'erreur lorsqu'il y a une duoplication de clé. Merci.
la requête s'exécute mais c'est juste le paramètre out qui correspond au message d'erreur qui ne s'affiche pas le printf($row->num); même avec echo.
Merci de votre aide.