// On initialise un tableau (param, qui contiendra les paramètres)
à 0
memset((void*) param, 0, sizeof(param));
// On définit le premier paramètre (pour client_id)
param[0].buffer_type = MYSQL_TYPE_INT;
param[0].buffer = (void*) &client;
param[0].is_unsigned = 0;
param[0].is_null = 0;
// On définit le deuxième paramètre (pour animal_id)
param[1].buffer_type = MYSQL_TYPE_INT;
param[1].buffer = (void*) &animal;
param[1].is_unsigned = 0;
param[1].is_null = 0;
// On définit le troisième paramètre (pour date_reservation)
param[2].buffer_type = MYSQL_TYPE_DATE;
param[2].buffer = (void*) &date_reserv;
param[2].is_null = 0;
// On lie les paramètres
if (mysql_stmt_bind_param(req_prep, param) != 0)
{
printf("Impossible de lier les paramètres à la requête");
exit(0);
}
// On définit la date
date_reserv.year = 2012;
date_reserv.month = 3;
date_reserv.day = 20;
// On exécute la requête
if (mysql_stmt_execute(req_prep) != 0)
{
printf("Impossible d'exécuter la requête");
exit(0);
}
Pour d'autres langages, des extensions ont été créées, qui sont en général elles-mêmes basées sur l'API C MySQL, comme par
exemple PDO pour le PHP.
Exemple de code PHP utilisant l'extension PDO pour préparer et exécuter une requête de sélection :
Code : PHP
try
{
$email = 'jean.dupont@email.com';
// On se connecte
$bdd = new PDO('mysql:host=localhost;dbname=elevage', 'sdz', '',
array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ));
// On prépare la requête
$requete = $bdd->prepare("SELECT * FROM Client WHERE email =
:email");
// On lie la variable $email définie au-dessus au paramètre :email
de la requête préparée
$requete->bindValue(':email', $email, PDO::PARAM_STR);
//On exécute la requête
$requete->execute();
Partie 5 : Sécuriser et automatiser ses actions
261/414
www.openclassrooms.com
à 0
memset((void*) param, 0, sizeof(param));
// On définit le premier paramètre (pour client_id)
param[0].buffer_type = MYSQL_TYPE_INT;
param[0].buffer = (void*) &client;
param[0].is_unsigned = 0;
param[0].is_null = 0;
// On définit le deuxième paramètre (pour animal_id)
param[1].buffer_type = MYSQL_TYPE_INT;
param[1].buffer = (void*) &animal;
param[1].is_unsigned = 0;
param[1].is_null = 0;
// On définit le troisième paramètre (pour date_reservation)
param[2].buffer_type = MYSQL_TYPE_DATE;
param[2].buffer = (void*) &date_reserv;
param[2].is_null = 0;
// On lie les paramètres
if (mysql_stmt_bind_param(req_prep, param) != 0)
{
printf("Impossible de lier les paramètres à la requête");
exit(0);
}
// On définit la date
date_reserv.year = 2012;
date_reserv.month = 3;
date_reserv.day = 20;
// On exécute la requête
if (mysql_stmt_execute(req_prep) != 0)
{
printf("Impossible d'exécuter la requête");
exit(0);
}
Pour d'autres langages, des extensions ont été créées, qui sont en général elles-mêmes basées sur l'API C MySQL, comme par
exemple PDO pour le PHP.
Exemple de code PHP utilisant l'extension PDO pour préparer et exécuter une requête de sélection :
Code : PHP
try
{
$email = 'jean.dupont@email.com';
// On se connecte
$bdd = new PDO('mysql:host=localhost;dbname=elevage', 'sdz', '',
array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ));
// On prépare la requête
$requete = $bdd->prepare("SELECT * FROM Client WHERE email =
:email");
// On lie la variable $email définie au-dessus au paramètre :email
de la requête préparée
$requete->bindValue(':email', $email, PDO::PARAM_STR);
//On exécute la requête
$requete->execute();
Partie 5 : Sécuriser et automatiser ses actions
261/414
www.openclassrooms.com
