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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.