Bài này sẽ hướng dẫn bạn delete dữ liệu từ MySQL trong PHP bằng cách sử dụng MySQLi và PDO.
Câu lệnh DELETE được sử dụng để xóa các bản ghi từ một bảng:
DELETE FROM table_name WHERE some_column = some_value
Chú ý: mệnh đề WHERE trong cú pháp DELETE: Mệnh đề WHERE chỉ định bản ghi hoặc cá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 của bảng sẽ bị xóa!
Giả sử bảng "MyGuests" có các bản ghi sau:
Các ví dụ sau xóa bản ghi với id = 3 trong bảng "MyGuests":
Ví dụ (MySQLi hướng đối tượng)
<?php $servername = "localhost"; $username = "root"; $password = "1234567890"; $dbname = "myDB"; // tạo connection $conn = new mysqli($servername, $username, $password, $dbname); // kiểm tra connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // lệnh sql xóa 1 bản ghi $sql = "DELETE FROM MyGuests WHERE id=3"; if ($conn->query($sql) === TRUE) { echo "Record deleted successfully"; } else { echo "Error deleting record: " . $conn->error; } $conn->close(); ?>
Ví dụ (MySQLi hướng thủ tục)
<?php $servername = "localhost"; $username = "root"; $password = "1234567890"; $dbname = "myDB"; // tạo connection $conn = mysqli_connect($servername, $username, $password, $dbname); // kiểm tra connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } // lệnh sql xóa 1 bản ghi $sql = "DELETE FROM MyGuests WHERE id=3"; if (mysqli_query($conn, $sql)) { echo "Record deleted successfully"; } else { echo "Error deleting record: " . mysqli_error($conn); } mysqli_close($conn); ?>
Ví dụ (PDO)
<?php $servername = "localhost"; $username = "root"; $password = "1234567890"; $dbname = "myDBPDO"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // thiết lập chế độ PDO error thành ngoại lệ $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // lệnh sql xóa 1 bản ghi $sql = "DELETE FROM MyGuests WHERE id=3"; // sử dụng exec() vì không có kết quả trả về $conn->exec($sql); echo "Record deleted successfully"; } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } $conn = null; ?>
Sau khi bản ghi bị xóa, bảng sẽ trông như thế này: