© Éditions Eyrolles
337
chapitre n° 9
Utilisation avec PHP
Pour toute extraction par SELECT, modification par UPDATE ou suppression par DELETE, le
principe à adopter est le même.
Gestion des séquences
La fonction mysqli_insert_id($connexion) retourne la valeur courante de la
séquence après avoir inséré un enregistrement dans une table contenant une colonne AUTO_
INCREMENT.
Le programme suivant (insert3.php) insère un affrètement (table décrite aux chapitres 2 et
8) à la date du jour pour la compagnie de code 'CAST' et l’avion immatriculé 'F-GRTC'. On
récupère la dernière valeur de la séquence après l’insertion.
Traitement des erreurs
Les fonctions mysqli_errno et mysqli_error permettent de gérer les erreurs retournées
par MySQL au niveau de la connexion. Les fonctions mysqli_stmt_errno et mysqli_
stmt_error sont analogues au niveau d’une instruction préparée.
Le programme suivant (erreur1.php) utilise plusieurs de ces fonctions. Dans cet exemple,
la suppression ne se déroule pas correctement du fait de l’existence d’enregistrements « fils »
dans la table Avion. Il est donc possible de dérouter le programme en fonction du code
d’erreur MySQL renvoyé (comme pour les exceptions des procédures cataloguées).
Tableau 9-12 Insertion paramétrée avec la fonction mysqli_insert_id
Code PHP
Commentaires
mysqli_autocommit($service,FALSE);
$codeComp = "CAST";
$immatric = "F-GRTC";
$n
= 162;
$insert3 = "INSERT INTO bdsoutou.Affreter
(comp,immat,dateAff,nbPax) VALUES(?,?,SYSDATE(),?)";
$ordre
= mysqli_prepare($service, $insert3);
Affectation des variables
PHP.
if ((
) > 0)
{if (($res = mysqli_stmt_execute($ordre)) > 0)
{print "
Affretement insérée, sequence : "
.
;
mysqli_commit($service);
mysqli_stmt_free_result($ordre); }
else print "
L'insertion est un échec!";
}
Définition de l’ordre paramétré.
Association avec les variables
PHP.
Exécution de l’ordre.
Récupération de la séquence.
Validation.
Libération des ressources.
else print "
Problème au bind!";
mysqli_close($service);
Fermeture de la connexion.
Web
mysqli_stmt_bind_param($ordre, 'ssi', $codeComp,)
$immatric, $n)
mysqli_insert_id($service)
Précédent

- 359/418

Suivant