Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk memadam data dari pangkalan data mysql dalam php

Bagaimana untuk memadam data dari pangkalan data mysql dalam php

王林
王林ke hadapan
2023-06-02 23:45:031194semak imbas

  1. 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.

  1. 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.

  1. 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[&#39;id&#39;];

//使用mysql_real_escape_string()函数转义用户输入的数据
$id = mysql_real_escape_string($id);

//编写删除数据的SQL语句
$sql = "DELETE FROM myTable WHERE id=&#39;$id&#39;";

//执行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.

  1. 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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam