Trong bài này, chúng ta sẽ tìm hiểu về cách delete row trong table với PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.
Các ví dụ delete dữ liệu sẽ thực hiện trên table gochocit_posts trong database gochocit. Database và table này đã được tạo trong bài Tạo database và tạo table trong MySQL với PHP. Các bạn cần đọc lại để xem cấu trúc của database và table trên.
Chúng ta có thể xóa (delete) những dòng dữ liệu trong table với câu lệnh “DELETE FROM”. Nếu muốn xóa tất cả row trong table thì sử dụng câu lệnh DELETE FROM table_name. Ví dụ, DELETE FROM gochocit_posts
.
Nếu muốn xóa một row cụ thể trong table thì cần sử dụng thêm câu lệnh WHERE. Ví dụ: DELETE FROM gochocit_posts WHERE ID=1
. Khi thực thi câu lệnh này, row có field ID=1 sẽ bị xóa khỏi table.
1. Xóa (delete) row trong table sử dụng MySQLi (object-oriented)
Câu lệnh DELETE FROM được thực thi khi đối tượng mysqli là $conn gọi hàm query()
. Nếu câu lệnh SQL thực thi thành công và delete được dữ liệu thì hàm query()
sẽ trả về TRUE, ngược lại FALSE.
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "gochocit";
// create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// sql to delete a record
$sql = "DELETE FROM gochocit_posts WHERE ID=1";
if ($conn->query($sql) === TRUE) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " . $conn->error;
}
$conn->close();
?>
2. Xóa (delete) row trong table sử dụng MySQLi (procedural)
Kỹ Câu lệnh DELETE FROM được thực thi khi gọi hàm mysqli_query()
. Nếu câu lệnh SQL thực thi thành công và delete được dữ liệu thì hàm mysqli_query()
sẽ trả về TRUE, ngược lại FALSE.
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "gochocit";
// create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// sql to delete a record
$sql = "DELETE FROM gochocit_posts WHERE ID=1";
if (mysqli_query($conn, $sql)) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
3. Xóa (delete) row trong table sử dụng PDO (PHP Data Objects)
Câu lệnh DELETE FROM được thực thi khi đối tượng PDO là $conn gọi hàm exec()
. Nếu câu lệnh SQL thực thi thành công và delete được dữ liệu thì hàm exec()
không gây ra exception. Ngược lại, hàm exec()
sẽ gây ra exception.
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "gochocit";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// sql to delete a record
$sql = "DELETE FROM gochocit_posts WHERE ID=1";
// use exec() because no results are returned
$conn->exec($sql);
echo "Record deleted successfully";
} catch(PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
Sau khi xóa các record xong, các bạn sử dụng công cụ phpMyAdmin để xem các row trong table gochocit_posts. Các bạn đọc lại phần Kết nối đến một database cụ thể trong MySQL để xem cách sử dụng công cụ phpMyAdmin.