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.
Partager