1. Lệnh Delete là gì?

Trong môn anh ngữ mà ta học thì delete có nghĩa là xóa hay trên bàn phím máy tính mà ta đang sử dụng thì delete cũng có chức năng là xóa. Và ở bài này, câu lệnh delete cũng dùng để xóa các record trong MySQL. Như các bạn thấy và sử dụng nhiều trên các ứng dụng thực tế các tính năng như xóa bài viết, xóa comment hay xóa ảnh,… Đây chính là lý do vì sao mà lệnh này hay được dùng trong backend để xóa các tin tức, sản phẩm, chuyên mục,…

Cũng giống như bạn chèn bản ghi vào bảng, bạn có thể xóa bản ghi khỏi bảng bằng câu lệnh DELETE và nó thường được sử dụng trong phép liên hợp với mệnh đề WHERE để chỉ xóa những bản ghi phù hợp với tiêu chí hoặc điều kiện cụ thể. Cùng với đó thường trong những ứng dụng website thì ta sẽ delete theo khóa chính vì khóa chính tự động tăng, việc truy vấn hay thao tác sẽ nhanh hơn rất nhiều(đây chính là những tiêu chí và điều kiện cụ thể ở trên). Vì vậy mà nếu không sử dụng Where thì có thể nó sẽ xóa hết dữ liệu của chúng ta. Vì vậy mà các bạn hãy thật lưu ý việc kiểm tra điều kiện trước khi thực hiện câu lệnh này.

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

DELETE FROM table_name
WHERE some_columns = some_values

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

Đầu tiên 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() để xóa các bản ghi bảng. Hãy xem xét bảng persons sau bên trong cơ sở dữ liệu db_lttd:

ID Name Age Address Salary
1 Thành 17 Hà Nội 4000$
2 Nam 21 Đà Nẵng 6400$
3 Sơn 18 Cà Mau 3200$
4 Hòa 20 Phúc Thọ 5000$

2.1. Sử dụng MySQLi hướng thủ tục

// khởi tạo kết nối
$connect = mysqli_connect('localhost', 'root', '', 'db_lttd');
//Kiểm tra kết nối
if (!$connect) {
    die('kết nối không thành công ' . mysqli_connect_error());
}
//câu truy vấn xóa bản ghi có id=1
$sql = "DELETE FROM tbl_news WHERE id = 1";
//kiểm tra
if (mysqli_query($connect, $sql))
    //Thông báo nếu thành công
    echo 'Xóa thành công';
else
    //Hiện thông báo khi không thành công
    echo 'Không thành công. Lỗi' . mysqli_error($connect);
//ngắt kết nối
mysqli_close($connect);

2.2. Sử dụng MySQLi hướng đối tượng

// khởi tạo kết nối
$connect = new mysqli('localhost', 'root', '', 'db_lttd');
//Kiểm tra kết nối
if ($connect->connect_error) {
    die('kết nối không thành công ' . $connect->connect_error);
}
//câu truy vấn xóa bản ghi có id=1
$sql = "DELETE FROM tbl_news WHERE id = 5";
//kiểm tra
if ($connect->query($sql) === TRUE)
    //Thông báo nếu thành công
    echo 'Xóa thành công';
else
    //Hiện thông báo khi không thành công
    echo 'Không thành công. Lỗi' . $connect->error;
//ngắt kết nối
$connect->close();

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

try {
    // khởi tạo kết nối
    $connect = new PDO('mysql:host=localhost;dbname=db_lttd', 'root', '');
    $connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    //Câu truy vấn
    $sql = "DELETE FROM tbl_news WHERE id = 6";
    //thực hiện truy vấn
    $connect->exec($sql);
    echo 'Thành công';
} catch (PDOException $e) {
    //thất bại
    die($e->getMessage());
}