Rumah >pangkalan data >tutorial mysql >Bagaimana untuk memadam data dari pangkalan data mysql dalam php
Sandarkan pangkalan data sebelum memadam
Sebelum memadam, sebaiknya buat sandaran pangkalan data pertama. Strategi biasa untuk bekerja dengan pangkalan data PostgreSQL dan MySQL. Boleh ditulis semula sebagai: PostgreSQL biasa dan strategi pemprosesan pangkalan data MySQL. Sandaran boleh membantu anda mendapatkan semula data anda jika anda memadamkannya secara tidak sengaja. Anda boleh menggunakan phpMyAdmin atau alat baris arahan untuk melengkapkan sandaran. Gunakan arahan mysqldump pada baris arahan untuk membuat sandaran pangkalan data.
Gunakan kenyataan DELETE
Gunakan kenyataan DELETE untuk memadam data dalam jadual. Menggunakan pernyataan DELETE, anda boleh memadamkan baris tertentu atau menggunakan kad bebas untuk memadamkan baris dalam kelompok.
<?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(); ?>
Dalam kod di atas, kami menggunakan pernyataan DELETE untuk memadamkan baris dengan ID 1 daripada jadual myTable
. Jika baris berjaya dipadamkan, program akan mengeluarkan "Data Deletion Berjaya" jika ia tidak dipadam, program akan mengeluarkan "Deletion Failed" dan mesej ralat dikembalikan oleh MySQL.
Mencegah Serangan SQL Injection
Serangan suntikan SQL ialah sejenis serangan siber yang boleh menjejaskan Data aplikasi anda kebocoran. Untuk mengelakkan serangan suntikan SQL, kita boleh menggunakan fungsi mysql_real_escape_string() PHP untuk melarikan data yang dimasukkan pengguna.
<?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(); ?>
Dalam kod di atas, kami menggunakan fungsi mysql_real_escape_string() untuk melepaskan data yang dimasukkan pengguna untuk mengelakkan serangan suntikan SQL.
Gunakan pengurusan transaksi untuk memadam operasi
Apabila anda perlu memadam data dalam berbilang jadual, pengurusan transaksi adalah Sangat penting. Dalam PHP, pemadaman berasaskan transaksi boleh dicapai dengan menggunakan sambungan MySQLi atau 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(); ?>
Dalam kod di atas, kami menggunakan fungsi begin_transaction() untuk memulakan transaksi dan menggunakan fungsi commit() untuk menyerahkan keputusan pada penghujung. Apabila menghadapi ralat, anda boleh menggunakan fungsi rollback() untuk membuat asal operasi pemadaman sebelumnya.
Atas ialah kandungan terperinci Bagaimana untuk memadam data dari pangkalan data mysql dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!