Trong bài này, chúng ta sẽ tìm hiểu về câu lệnh update và drop trong MySQL 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ụ update và drop 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ể sửa (update) những dòng dữ liệu đã được insert vào table trong MySQL. Sử dụng câu lệnh “UPDATE” để thực hiện update.
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
Chúng ta có thể xóa (delete) những table đã được tạo trong database. Sử dụng câu lệnh “DROP TABLE” để xóa table. Sử dụng thêm “IF EXISTS” để kiểm tra một table đã tồn tại chưa, nếu đã tồn tại thì xóa table.
DROP TABLE IF EXISTS table_name
1. Update table sử dụng MySQLi (object-oriented)
Câu lệnh UPDATE đượ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à update đượ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 update a record
$sql = "UPDATE gochocit_posts SET post_author = 'Phúc Trần' WHERE ID = '1'";
if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}
$conn->close();
?>
2. Update table sử dụng MySQLi (procedural)
Câu lệnh UPDATE đượ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à update đượ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: " . $conn->connect_error);
}
// sql to insert data
$sql = "UPDATE gochocit_posts SET post_author = 'Phúc Trần' WHERE ID = '1'";
if (mysqli_query($conn, $sql)) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
3. Update table sử dụng PDO (PHP Data Objects)
Câu lệnh UPDATE được thực thi khi đối tượng PDO là $conn gọi hàm prepare()
rồi execute()
để update dữ liệu. Nếu câu lệnh SQL thực thi thành công và update được dữ liệu thì không gây ra exception, ngược lại 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 = "UPDATE gochocit_posts SET post_author = 'Phúc Trần' WHERE ID = '1'";
// prepare statement
$stmt = $conn->prepare($sql);
// execute the query
$stmt->execute();
// echo a message to say the UPDATE succeeded
echo $stmt->rowCount() . " records UPDATED successfully";
} catch(PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
4. Drop table sử dụng PDO (PHP Data Objects)
Chúng ta có thể xóa (delete) những table đã được tạo trong database. Sử dụng câu lệnh “DROP TABLE” để xóa table. Sử dụng thêm “IF EXISTS” để kiểm tra một table đã tồn tại chưa, nếu đã tồn tại thì xóa table.
<?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 = "DROP TABLE IF EXISTS gochocit_posts";
// prepare statement
$stmt = $conn->prepare($sql);
// execute the query
$stmt->execute();
// echo a message to say the drop succeeded
echo "Table gochocit_posts dropped successfully";
} catch(PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
Nếu đoạn code trên thực thi không xảy ra exception thì đã xóa được table. Các bạn sử dụng trình duyệt web và truy cập vào địa chỉ http://localhost/phpmyadmin/ để kiểm tra table đã được xóa hay chưa.