Maison > Article > base de données > Comment supprimer des données de la base de données MySQL en PHP
Sauvegardez la base de données avant de la supprimer
Avant de supprimer, il est préférable de sauvegarder d'abord la base de données. Stratégies courantes pour travailler avec les bases de données PostgreSQL et MySQL. Peut être réécrit comme : Stratégies communes de traitement des bases de données PostgreSQL et MySQL. Les sauvegardes peuvent vous aider à récupérer vos données si vous les supprimez accidentellement. Vous pouvez utiliser phpMyAdmin ou des outils de ligne de commande pour terminer la sauvegarde. Utilisez la commande mysqldump sur la ligne de commande pour sauvegarder la base de données.
Utilisez l'instruction DELETE
Utilisez l'instruction DELETE pour supprimer les données du tableau. À l'aide de l'instruction DELETE, vous pouvez supprimer des lignes spécifiques ou utiliser des caractères génériques pour supprimer des lignes par lots.
<?php //连接到数据库 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; //创建连接对象 $conn = new mysqli($servername, $username, $password, $dbname); //检查连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } //编写删除数据的SQL语句 $sql = "DELETE FROM myTable WHERE id=1"; //执行SQL语句 if ($conn->query($sql) === TRUE) { echo "数据删除成功"; } else { echo "删除失败: " . $conn->error; } //关闭连接 $conn->close(); ?>
Dans le code ci-dessus, nous utilisons l'instruction DELETE pour supprimer la ligne avec l'ID 1 de la table myTable
. Si la ligne est supprimée avec succès, le programme affichera « Suppression des données réussie » ; si elle n'est pas supprimée, le programme affichera « Échec de la suppression » et le message d'erreur renvoyé par MySQL.
Prévenir les attaques par injection SQL
Une attaque par injection SQL est un type de cyberattaque qui peut provoquer une fuite des données de votre application. Pour éviter les attaques par injection SQL, nous pouvons utiliser la fonction mysql_real_escape_string() de PHP pour échapper aux données saisies par l'utilisateur.
<?php //连接到数据库 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; //创建连接对象 $conn = new mysqli($servername, $username, $password, $dbname); //检查连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } //获取用户输入的数据 $id = $_POST['id']; //使用mysql_real_escape_string()函数转义用户输入的数据 $id = mysql_real_escape_string($id); //编写删除数据的SQL语句 $sql = "DELETE FROM myTable WHERE id='$id'"; //执行SQL语句 if ($conn->query($sql) === TRUE) { echo "数据删除成功"; } else { echo "删除失败: " . $conn->error; } //关闭连接 $conn->close(); ?>
Dans le code ci-dessus, nous utilisons la fonction mysql_real_escape_string() pour échapper aux données saisies par l'utilisateur afin d'empêcher les attaques par injection SQL.
Utilisez la gestion des transactions pour supprimer des opérations
La gestion des transactions est très importante lorsque vous devez supprimer des données dans plusieurs tables. En PHP, la suppression basée sur les transactions peut être réalisée en utilisant des extensions MySQLi ou PDO.
<?php //连接到数据库 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; //创建连接对象 $conn = new mysqli($servername, $username, $password, $dbname); //检查连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } //开启事务 $conn->begin_transaction(); //编写删除数据的SQL语句 $sql1 = "DELETE FROM myTable WHERE id=1;"; $sql2 = "DELETE FROM myTable1 WHERE id=2;"; //删除数据 if ($conn->query($sql1) === TRUE && $conn->query($sql2) === TRUE) { //提交事务 $conn->commit(); echo "所有数据删除成功"; } else { echo "删除失败: " . $conn->error; //回滚事务,撤销删除操作 $conn->rollback(); } //关闭连接 $conn->close(); ?>
Dans le code ci-dessus, nous utilisons la fonction start_transaction() pour démarrer la transaction, et utilisons la fonction commit() pour soumettre le résultat à la fin. Lorsque vous rencontrez une erreur, vous pouvez utiliser la fonction rollback() pour annuler l'opération de suppression précédente.
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!