EXECUTE select_race;
SET @id = 3;
EXECUTE select_col_animal USING @id;
SET @client = 2;
EXECUTE select_adoption USING @client, @id;
SET @email = 'jean.dupont@email.com';
EXECUTE select_client USING @email;
SET @email = 'marie.boudur@email.com';
EXECUTE select_client USING @email;
SET @email = 'fleurtrachon@email.com';
EXECUTE select_client USING @email;
SET @email = 'jeanvp@email.com';
EXECUTE select_client USING @email;
SET @email = 'johanetpirlouit@email.com';
EXECUTE select_client USING @email;
Suppression d'une requête préparée
Pour supprimer une requête préparée, on utilise DEALLOCATE PREPARE, suivi du nom de la requête préparée.
Exemple
Code : SQL
DEALLOCATE PREPARE select_race;
Usage et utilité
Usage
La syntaxe que nous venons de voir, avec PREPARE, EXECUTE et DEALLOCATE est en fait très rarement utilisée.
En effet, vous le savez, MySQL est rarement utilisé seul. La plupart du temps, il est utilisé en conjonction avec un langage de
programmation, comme Java, PHP, python, etc. Celui-ci permet de gérer un programme, un site web,… , et crée des requêtes SQL
permettant de gérer la base de données de l'application.
Or, il existe des API (interfaces de programmation) pour plusieurs langages, qui permettent de faire des requêtes préparées sans
exécuter vous-mêmes les commandes SQL PREPARE, EXECUTE et DEALLOCATE. Exemples : l'API C MySQL pour le langage
C, MySQL Connector/J pour le Java, ou MySQL Connector/Net pour le .Net.
Voici un exemple de code C utilisant l'API MySQL pour préparer et exécuter une requête d'insertion :
Code : C
MYSQL_STMT *req_prep;
MYSQL_BIND param[3];
int client = 2;
int animal = 56;
MYSQL_TIME date_reserv;
char *req_texte = "INSERT INTO Adoption (client_id, animal_id,
date_reservation) VALUES (?, ?, ?)";
// On prépare la requête
if (mysql_stmt_prepare(req_prep, req_texte, strlen(req_texte)) != 0)
{
printf("Impossible de préparer la requête");
exit(0);
}
Partie 5 : Sécuriser et automatiser ses actions
260/414
www.openclassrooms.com
Précédent

- 260/413

Suivant