PDO est une méthode d'accès aux bases de données en PHP. Elle peut interagir avec différentes bases de données relationnelles. Les instructions préparées par PDO sont une fonctionnalité qui rend PDO plus puissant et peut efficacement éviter les problèmes de sécurité tels que l'injection SQL.
Cet article présentera les instructions préparées PDO, en se concentrant sur la façon d'utiliser les instructions préparées PDO pour effectuer des opérations de base de données.
Qu'est-ce qu'une déclaration préparée par l'AOP ?
L'instruction préparée PDO est une méthode permettant de préparer d'abord des instructions SQL, puis de les exécuter. Il empêche les attaques par injection SQL en divisant l'instruction de requête SQL en deux étapes, la première étape consiste à préparer la requête et la deuxième étape consiste à exécuter la requête.
Avantages de l'utilisation des instructions préparées PDO :
1. Contrôle de sécurité
L'utilisation d'instructions préparées PDO peut empêcher les attaques par injection SQL. Lors de la préparation de requêtes, des instructions similaires à celle-ci : $stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username AND password = :password");, elles utilisent des deux-points (:) pour définir les paramètres, et Parameter séparation et échappement des instructions SQL.
2. Amélioration des performances
Chaque fois qu'une instruction préparée par PDO est appelée, la base de données ne doit être compilée et optimisée qu'une seule fois au lieu d'exécuter la requête à chaque fois, ce qui peut améliorer l'efficacité des requêtes.
3. Indice de type de données
Les instructions préparées par PDO peuvent fournir des indications sur le type de données pour garantir que les paramètres reçus par la base de données sont corrects. Par exemple, PDO::PARAM_INT peut être utilisé pour les types entiers.
Comment utiliser les instructions préparées PDO
Avant d'utiliser les instructions préparées PDO, vous devez vous connecter à la base de données. Voici un exemple de code pour se connecter à une base de données MySQL :
<?php $dsn = 'mysql:host=localhost;dbname=test'; $username = 'root'; $password = ''; try { $pdo = new PDO($dsn, $username, $password); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); exit; }
Maintenant que nous sommes connectés à la base de données, nous pouvons commencer à utiliser les instructions préparées par PDO. Supposons que nous ayons une table d'utilisateurs contenant les champs suivants : identifiant, nom d'utilisateur et mot de passe.
Tout d’abord, nous devons préparer une instruction de requête. Par exemple, si nous voulons obtenir des utilisateurs dont les noms d'utilisateur et les mots de passe correspondent, nous pouvons définir une instruction préparée comme suit :
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username AND password = :password");
Utilisez ici les deux-points (:) pour définir les variables que nous voulons interroger, ":username" et ":password " sont les deux variables .
Ensuite, nous devons lier des valeurs à ces variables. Cela peut être fait via la méthode bindParam() ou bindValue(). bindParam() est plus polyvalent, il peut être utilisé plusieurs fois pendant la durée de vie de la variable.
$stmt->bindParam(':username', $username); $stmt->bindParam(':password', $password);
bindValue() est utilisé pour lier la valeur à la variable une fois. Si notre variable n'a plus besoin d'être utilisée, il est recommandé d'utiliser cette méthode :
$stmt->bindValue(':username', $username); $stmt->bindValue(':password', $password);
Ici, $username et $password sont le nom d'utilisateur et $password que nous voulons interroger.
Enfin, nous devons exécuter la requête :
$stmt->execute(); while ($row = $stmt->fetch()) { // do something with the rows }
La méthode fetch() récupère les résultats de la requête en lignes et renvoie chaque ligne sous forme de tableau. Nous pouvons utiliser cet ensemble de résultats dans une boucle, en opérant sur chaque ligne.
Résumé
Les instructions préparées PDO sont l'un des moyens les plus efficaces d'éviter l'injection SQL. Lors de la préparation d'une requête, les deux-points sont utilisés pour spécifier des paramètres, séparer les paramètres et échapper aux instructions SQL. Chaque fois qu'une instruction préparée par PDO est appelée, la base de données n'a besoin que de compiler et d'optimiser une seule requête au lieu d'optimiser chaque requête, ce qui peut améliorer l'efficacité des requêtes.
Dans cet article, nous avons présenté comment utiliser les instructions préparées par PDO et les méthodes associées. Ce serait une astuce très utile à utiliser dans des applications de niveau supérieur ou pour empêcher les attaques par injection SQL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!