Câu lệnh DELETE | MySQL & PHP

“Hãy hòa nhã với những kẻ dở hơi. Ai biết được ngày sau bạn có thể phải làm việc cho một kẻ như vậy.”

Bill Gates

Microsoft

Trong bài hướng dẫn tự học lập trình PHP này, bạn sẽ tìm hiểu làm thế nào để sử dụng PHP để xóa (DELETE) các bản ghi từ bảng MySQL.

Xóa bảng cơ sở dữ liệu với câu lệnh DELETE

Giống như khi bạn chèn các bản ghi vào các bảng CSDL, bạn cũng có thể xóa (DELETE) các bản ghi khỏi một bảng CSDL bằng cách sử dụng câu lệnh DELETE trong SQL.

Câu lệnh DELETE thường được sử dụng kết hợp với mệnh đề WHERE để chỉ xóa những bản ghi phù hợp với tiêu chí cụ thể.

Cú pháp cơ bản của câu lệnh DELETE

DELETE FROM table_name WHERE column_name=some_value

Bây giờ, giống như tất cả những bài khác, chúng ta hãy tạo một truy vấn SQL bằng cách sử dụng câu lệnh DELETE và mệnh đề WHERE, sau đó chúng ta sẽ thực hiện truy vấn này thông qua việc chuyển nó đến hàm mysqli_query() của PHP để xóa các bản ghi bảng.

Hãy xem xét bảng person sau trong cơ sở dữ liệu demo:

Bảng person trong CSDL demo
Bảng person trong CSDL demo sừ dụng trong ví dụ

Hướng dẫn sử dụng xóa bản ghi trong bảng CSDL với câu lệnh DELETE

Ví dụ sử dụng câu lệnh DELETE | MySQL & PHP
Ví dụ sử dụng câu lệnh DELETE | MySQL & PHP

Ví dụ 1: Hướng dẫn xóa bản ghi bằng câu lệnh DELETE sử dụng MySQLi hướng thủ tục

<?php
/* Cố gắng kết nối tới MySQL Server. Giả sử bạn đang chạy MySQL Server
với thiết lập mặc định (user 'root' và không có mật khẩu)*/
$link = mysqli_connect("localhost", "root", "", "demo");
 
// Kiểm tra kết nối
if($link === false){
    die("ERROR: Không thể kết nối. " . mysqli_connect_error());
}
 
// Cố gắng thực thi truy vấn
$sql = "DELETE FROM persons WHERE first_name='Triệu Tòn'";
if(mysqli_query($link, $sql)){
    echo "Xóa bản ghi thành công.";
} else{
    echo "ERROR: Không thể thực thi truy vấn $sql. " . mysqli_error($link);
}
 
// Đóng kết nối
mysqli_close($link);
?>

Ví dụ 2: Hướng dẫn xóa bản ghi bằng câu lệnh DELETE sử dụng MySQLi hướng đối tượng

<?php
/* Cố gắng kết nối tới MySQL Server. Giả sử bạn đang chạy MySQL Server
với thiết lập mặc định (user 'root' và không có mật khẩu)*/
$mysqli = new mysqli("localhost", "root", "", "demo");
 
// Kiểm tra kết nối
if($mysqli === false){
    die("ERROR: Không thể kết nối. " . $mysqli->connect_error);
}
 
// Cố gắng thực thi truy vấn
$sql = "DELETE FROM persons WHERE first_name='Triệu Tòn'";
if($mysqli->query($sql) === true){
    echo "Xóa bản ghi thành công.";
} else{
    echo "ERROR: Không thể thực thi truy vấn $sql. " . $mysqli->error;
}
 
// Đóng kết nối
$mysqli->close();
?>

Ví dụ 3: Hướng dẫn xóa bản ghi bằng câu lệnh DELETE sử dụng PDO

<?php
/* Cố gắng kết nối tới MySQL Server. Giả sử bạn đang chạy MySQL Server
với thiết lập mặc định (user 'root' và không có mật khẩu)*/
try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
    // Thiết lập chế độ PDO Error thành Ngoại lệ
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
    die("ERROR: Không thể kết nối. " . $e->getMessage());
}
 
// Cố gắng thực thi truy vấn
try{
    $sql = "DELETE FROM persons WHERE first_name='Triệu Tòn'";  
    $pdo->exec($sql);
    echo "Xóa bản ghi thành công.";
} catch(PDOException $e){
    die("ERROR: Không thể thực thi truy vấn $sql. " . $e->getMessage());
}
 
// Đóng kết nối
unset($pdo);
?>

Đây là kết quả sau khi sử dụng câu lệnh DELETE xóa first_name là “Triệu Tòn”

Kết quả sau khi sử dụng câu lệnh DELETE
Kết quả sau khi sử dụng câu lệnh DELETE

CẢNH BÁO: Mệnh đề WHERE trong câu lệnh DELETE chỉ định bản ghi hoặc bản ghi nào sẽ bị xóa. Nếu bạn bỏ qua mệnh đề WHERE, tất cả các bản ghi sẽ bị xóa.

Bạn đã hiểu cách sử dụng câu lệnh DELETE chưa?

Câu lệnh DELETE sử dụng để xóa bản ghi trong CSDL. Tuy nhiên, câu lệnh DELETE khá nguy hiểm bởi nếu bạn bỏ qua mệnh đề WHERE, toàn bộ dữ liệu sẽ bị xóa.

Hãy cẩn thận khi sử dụng câu lệnh DELETE nhé.

Chúc bạn học MySQL tốt.

PHPDev

Có thể bạn muốn xem

Leave a reply

Please enter your comment!
Please enter your name here