Maison > développement back-end > tutoriel php > Apprenez à utiliser les instructions préparées par PDO

Apprenez à utiliser les instructions préparées par PDO

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2023-06-20 18:48:02
original
1592 Les gens l'ont consulté

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;
}
Copier après la connexion

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");
Copier après la connexion

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);
Copier après la connexion

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);
Copier après la connexion

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
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal