Partie III
Langages et outils
336
© Éditions Eyrolles
fetch pour parcourir le résultat de la requête ligne après ligne, et mysqli_stmt_close
pour fermer la requête préparée.
Manipulations
Le programme suivant (insert2.php) utilise la fonction mysqli_stmt_bind_param en
faisant passer deux paramètres (variables PHP) lors de l’insertion d’une nouvelle compagnie.
On retrouve la notion de placeholders (symbole « ? » désignant une valeur d’une colonne
d’une table ou d’une vue) étudiée au chapitre 7. Notez le second paramètre de la fonction
mysqli_stmt_bind_param (« ss » désigne deux types chaînes de caractères).
Tableau 9-10 Extraction préparée avec la fonction mysqli_stmt_bind_result
Code PHP
Commentaires
$requete = "SELECT immat,typeAvion FROM bdsoutou.Avion";
$ordre
=
if ( ($res =
) > 0)
Définition et exécution de
la requête préparée.
{if ( ($resbind =
) > 0)
{print "

Liste des avions

";
print " ";
while (
)
{print "" ;
print "
"; }
print "
$im $ty
";
} else print "
La liaison est un échec!";
Affectation des variables
PHP.
Parcours de la requête.
} else print "
La requete est un échec!";
mysqli_stmt_close($ordre);
mysqli_close($service);
Fermeture de la requête
et de la connexion.
Web
mysqli_prepare($service,$requete);
mysqli_stmt_execute($ordre)
mysqli_stmt_bind_result($ordre,$im,$ty)
mysqli_stmt_fetch($ordre)
Tableau 9-11 Insertion paramétrée avec la fonction mysqli_stmt_bind_param
Code PHP
Commentaires
mysqli_autocommit($service,FALSE);
$codeComp = "CAST";
$nomComp = "Castanet Air";
$insert2 =
$ordre
=
Affectation des variables
PHP.
Définition de l’ordre paramétré.
if ((
{if (($res =
) > 0)
{print "
Compagnie $nomComp insérée";
mysqli_commit($service);
mysqli_stmt_free_result($ordre); }
Association avec les variables
PHP.
Exécution de l’ordre.
Validation.
else print "
L'insertion est un échec!";
}
Libération des ressources.
else print "
Problème au bind!";
mysqli_close($service);
Fermeture de la connexion.
Web
"INSERT INTO Compagnie VALUES(?,?)";
mysqli_prepare($service, $insert2);
mysqli_stmt_bind_param($ordre, 'ss', $codeComp,
$nomComp)) > 0)
mysqli_stmt_execute($ordre)
Précédent

- 358/418

Suivant