06/04/2021, 14:45

Bài 10: Delete dữ liệu MySQL bằng PHP - PHP và MySQL

Lệnh delete dùng để xóa các records trong MySQL, lệnh này thường dùng trong backend đẻ xóa các tin tức, sản phẩm, chuyên mục. Cú pháp của lệnh này như sau: DELETE FROM table_name WHERE some_columns = some_values Thường trong ứng dụng website thì ta sẽ delete theo khóa chính bởi vì khóa chính ...

Lệnh delete dùng để xóa các records trong MySQL, lệnh này thường dùng trong backend đẻ xóa các tin tức, sản phẩm, chuyên mục. Cú pháp của lệnh này như sau:

DELETE FROM table_name
WHERE some_columns = some_values

Thường trong ứng dụng website thì ta sẽ delete theo khóa chính bởi vì khóa chính tăng tự động nên truy vấn tìm kiếm sẽ nhanh hơn. Nếu bạn không truyền vào điều kiện where thì nó sẽ xóa hết tất cả data trong table ,vì vậy hãy kiểm tra kỹ điều kiện trước khi thực hiện lệnh này.

1. Delete dữ liệu với MySQLi

Chúng ta có hai trường hợp sử dụng đó là hướng đói tượng và hướng thủ tục truyền thống.

Sử dụng MySQLi Object-oriented:

// Kết nối
$conn = new mysqli('localhost', 'root', 'vertrigo', 'Zaidap.comDemo');

// Kiểm tra kết nối
if ($conn->connect_error) {
    die("Kết nối thất bại: " . $conn->connect_error);
} 

// Câu SQL delete
$sql = "DELETE FROM News WHERE id=1";

// Thực hiện câu truy vấn
if ($conn->query($sql) === TRUE) {
    echo "Xóa thành công";
} else {
    echo "Xóa thất bại: " . $conn->error;
}

$conn->close();

Sử dụng MySQLi Procedural:

// Kết nối
$conn = mysqli_connect('localhost', 'root', 'vertrigo', 'Zaidap.comDemo');

// Kiểm tra kết nối
if (!$conn) {
    die("Kết nối thất bại: " . mysqli_connect_error());
}

// Câu SQL delete
$sql = "DELETE FROM News WHERE id=1";

// Thực hiện câu truy vấn
if (mysqli_query($conn, $sql)) {
    echo "Xóa thành công";
} else {
    echo "Xóa thất bại: " . mysqli_error($conn);
}

// ngắt kết nối
mysqli_close($conn);

2. Delete dữ liệu với PDO

Cũng tương tự như những bài trước.

try {
    // Kết nối
    $conn = new PDO("mysql:host=localhost;dbname=Zaidap.comDemo", 'root', 'vertrigo');

    // Thiết lập exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // Câu SQL
    $sql = "DELETE FROM News WHERE id=1";

    // Thực thi câu truy vấn
    $conn->exec($sql);

    echo "Xóa thành công!";
} 
catch (PDOException $e) {
    echo 'Lỗi' . "<br>" . $e->getMessage();
}

// Ngắt kết nối
$conn = null;

3. Lời kết

Các ví dụ trên mình không sử dụng cơ chế prepared nên nó sẽ không bảo mật, vì vậy khi lập trình bạn nên sử dụng prepared nhé. Bài tiếp theo chúng ta sẽ tìm hiểu cách cập nhất dữ liệu bằng PHP.

0