Requêtes préparées et paramétrées
Définition : Requête préparée et paramétrée
L'étape de préparation de requête permet de précompiler une requête SQL côté serveur. Cela permet d'optimiser les performances lorsqu'une requête est utilisée plusieurs fois.
Cela permet également de paramétrer les requêtes au niveau d'un langage applicatif (comme PHP) sans utiliser de concaténation de chaîne (ce qui renforce notamment la sécurité du code).
Conseil :
Utiliser des requêtes paramétrées au niveau des langages applicatifs.
Exemple : Requête INSERT non préparée en PHP (déprécié)
1
$result = $connexion->query("INSERT INTO medicament (nom) VALUES ('Nouveau')");
Exemple : Requête INSERT préparée en PHP
1
$result = $connexion->prepare("INSERT INTO medicament (nom) VALUES ('Nouveau')");
2
$result->execute();
Exemple : Requête INSERT préparée et paramétrée en PHP (bindValue)
1
$result = $connexion->prepare("INSERT INTO medicament (nom) VALUES (:param1)");
2
$result->bindValue('param1', $name, PDO::PARAM_STR);
3
$result->execute();
4
Exemple : Requête INSERT préparée et paramétrée en PHP (bindParam)
1
$result = $connexion->prepare("INSERT INTO medicament (nom) VALUES (:param1)");
2
$result->bindParam(':param1', $name, PDO::PARAM_STR);
3
4
$name = "Nouveau1";
5
$result->execute();
6
7
$name = "Nouveau2";
8
$result->execute();