Maison >développement back-end >Problème PHP >php utilise pdo pour ajouter et supprimer
Explication détaillée de l'opération de modification
PHP est un langage de script extrêmement populaire dans le domaine Internet, et en PHP, nous avons souvent besoin d'interagir avec la base de données pour effectuer des opérations telles que le stockage de données, la requête et la mise à jour. Pour les opérations sur les données, les méthodes actuellement les plus couramment utilisées incluent mysqli et PDO. Dans cet article, nous nous concentrerons sur l'explication de l'utilisation de PDO (PHP Data Objects) et sur la façon d'utiliser PDO pour ajouter, supprimer, modifier et interroger des données.
PDO est une méthode de traitement de couche d'accès aux données légère et cohérente orientée objet introduite dans PHP 5.1, fournissant une API unifiée pour accéder à diverses bases de données relationnelles. L'utilisation de PDO pour se connecter à la base de données peut fournir certains objets de pilote de base de données et être compatible dans la plus grande mesure avec de nombreux types de bases de données différents. Lorsque vous devez modifier la base de données, il vous suffit de modifier le pilote de la base de données, sans modifier les autres interfaces d'exploitation de la base de données.
Avant d'utiliser PDO pour les opérations de base de données, nous devons d'abord effectuer des opérations de connexion à la base de données. PDO fournit un moyen plus simple de se connecter à la base de données :
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
Avec le code ci-dessus, nous pouvons créer un PDO nommé $dbh Object qui est connecté à. une base de données MySQL nommée test. $user et $pass sont le nom d'utilisateur et le mot de passe de la base de données, et mysql:host=localhost représente l'adresse de l'hôte qui se connecte à la base de données.
Lors de l'utilisation de PDO pour les opérations de requête de données, nous devons d'abord créer une instruction de requête via l'objet PDO et enregistrer le résultat dans une variable. PDO prend en charge les instructions de requête précompilées, ce qui peut améliorer considérablement l'efficacité des requêtes et éviter les attaques par injection SQL.
2.1 Opération de requête
Dans PDO, nous devons d'abord préparer l'instruction de requête SQL et l'exécuter :
$sql = "SELECT * FROM users WHERE username=:username"; $stmt = $dbh->prepare($sql); $stmt->bindParam(':username', $username); $stmt->execute();
Dans le code ci-dessus, nous lions la valeur de la variable $username à l'instruction de requête en liant le paramètre : username , ainsi les vulnérabilités d'injection SQL sont évitées.
2.2 Obtenir les résultats de la requête
Après avoir exécuté avec succès une instruction de requête, nous devons obtenir les résultats de l'exécution. PDO fournit les méthodes suivantes pour obtenir les résultats de la requête :
Ce qui suit est un exemple de code pour obtenir les résultats de la requête :
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { echo "username: " . $row['username'] . " "; echo "email: " . $row['email'] . " "; }
Dans l'exemple de code ci-dessus, nous parcourons l'ensemble de résultats de la requête à travers une boucle while, renvoyons une ligne de données à chaque fois et générons le nom d'utilisateur et le nom d'utilisateur dans chaque ligne de données via l'instruction echo La valeur correspondant à la colonne email.
2.3 Paramètres de liaison
Lors de l'utilisation de PDO pour effectuer des requêtes précompilées, nous devons lier les paramètres dynamiques de l'instruction de requête à des variables pour éviter les vulnérabilités d'injection SQL. PDO prend en charge les méthodes suivantes pour la liaison des paramètres :
$stmt = $dbh->prepare("SELECT * FROM users WHERE username=:username AND email=:email"); $stmt->bindParam(':username', $username); $stmt->bindParam(':email', $email); $stmt->execute();
Dans l'exemple de code ci-dessus, nous utilisons la méthode bindParam() pour lier les deux variables $username et $email à leurs homologues correspondantes dans les paramètres de l'instruction de requête et exécutez l'opération de requête via la méthodeexecute(). De cette façon, nous pouvons éviter les vulnérabilités d’injection SQL lors des requêtes.
Utilisez PDO pour ajouter, supprimer et modifier des données3.1 Opération d'ajout de données
Dans PDO, nous créons une instruction SQL prétraitée via la méthode préparer() et utilisons la méthode exécuter() pour transmettre des paramètres dans l'instruction. Voici un exemple de code pour ajouter des données à l'aide de PDO :
// 准备SQL语句并绑定参数 $sql = "INSERT INTO `users` (`username`, `email`) VALUES (?, ?)"; $stmt = $dbh->prepare($sql); $stmt->bindParam(1, $username); $stmt->bindParam(2, $email); // 执行SQL语句,插入新的用户记录 $username = 'test_user'; $email = 'test_user@example.com'; $stmt->execute();
Dans le code ci-dessus, nous créons d'abord une instruction SQL prétraitée via la méthode prepare() et utilisons la méthode bindParam() pour lier les variables $username et $email Définissez les deux espaces réservés de point d'interrogation dans cette instruction, correspondant aux deux ? dans VALUES (?, ?)
. . Enfin, l'instruction SQL est exécutée via la méthodeexecute() pour terminer une opération d'ajout de données.
3.2 Opération de suppression de donnéesVALUES (?, ?)
中的两个?。最后通过execute()方法执行SQL语句,从而完成一条数据添加操作。
3.2 数据删除操作
在使用PDO进行数据删除时,我们需要通过prepare()方法创建一个预处理的SQL语句,并使用bindParam()方法将需要删除的数据绑定到该语句中。下面是使用PDO进行数据删除的示例代码:
// 准备SQL语句并绑定参数 $sql = "DELETE FROM `users` WHERE `username` = ?"; $stmt = $dbh->prepare($sql); $stmt->bindParam(1, $username); // 执行SQL语句,删除指定用户名的用户记录 $username = 'test_user'; $stmt->execute();
在上述示例代码中,我们首先通过prepare()方法创建了一个预处理的SQL语句,使其能够进行数据删除操作,并通过bindParam()方法将变量$username绑定到语句中的问号占位符上,对应于WHERE username = ?
// 准备SQL语句并绑定参数 $sql = "UPDATE `users` SET `email` = ? WHERE `username` = ?"; $stmt = $dbh->prepare($sql); $stmt->bindParam(1, $email); $stmt->bindParam(2, $username); // 执行SQL语句,更新指定用户名的用户记录 $username = 'test_user'; $email = 'new_test_user@example.com'; $stmt->execute();Dans l'exemple de code ci-dessus, nous avons d'abord créé une instruction SQL prétraitée via la méthode prepare() pour lui permettre d'effectuer des opérations de suppression de données, et avons transmis la méthode bindParam(). Liez la variable $username à l'espace réservé au point d'interrogation dans l'instruction, correspondant à l'un des ? dans
WHERE username = ?
. Enfin, l'instruction SQL est exécutée via la méthodeexecute() et une opération de suppression de données est terminée. 🎜🎜3.3 Opération de modification des données🎜使用PDO进行数据修改时,我们需要通过prepare()方法创建一个预处理的SQL语句,并使用bindParam()方法将需要修改的数据绑定到该语句中。下面是使用PDO进行数据修改的示例代码:
// 准备SQL语句并绑定参数 $sql = "UPDATE `users` SET `email` = ? WHERE `username` = ?"; $stmt = $dbh->prepare($sql); $stmt->bindParam(1, $email); $stmt->bindParam(2, $username); // 执行SQL语句,更新指定用户名的用户记录 $username = 'test_user'; $email = 'new_test_user@example.com'; $stmt->execute();
在上述示例代码中,我们使用prepare()方法创建了一个预处理的SQL语句,并使用bindParam()方法将需要修改的参数绑定到该语句中。其中,使用了SET语句将用户记录中的email字段进行修改,并使用了WHERE语句将修改操作限制在了指定的用户上。在bindParam()方法中,我们通过1和2两个参数分别对应了email和username,从而完成了参数绑定的操作。
通过本文的学习,我们了解了如何使用PDO进行MySQL数据库的连接、查询、数据添加、删除和修改等操作。在使用PDO进行操作时,我们需要使用prepare()方法创建一个预处理的SQL语句,并使用bindParam()方法对该语句中的动态参数进行绑定。这样,在使用execute()方法执行语句时,我们就可以避免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!