Trong bài này ta sẽ tìm hiểu đến thao tác cuối cùng thường hay sử dụng trong MySQL lẫn PHP đó là cập nhật dữ liệu, đây là thao tác được dùng trong backend dùng để sửa thông tin sản phẩm, tin tức, chuyên mục, ...
Cú pháp của lệnh update như sau:
UPDATE table_name
SET column1 = value1, column2 = value2,...
WHERE some_column = some_value
Tương tự như trường hợp delete bạn phải truyền điều kiện update vào nếu không nó sẽ cập nhật cho toàn bộ records có trong table. Thông thường thì chúng ta lấy điều kiện theo khóa chính.
1) Sử dụng MySQLi Object-oriented
// Kết nối CSDL
$conn = new mysqli('localhost', 'root', '', 'demo');
// Kiểm tra kết nối
if ($conn->connect_error) {
die("Kết nối thất bại: " . $conn->connect_error);
}
// Lệnh update
$sql = "UPDATE News SET title='Tiêu đề updated' WHERE id=1";
// Thực hiện update
if ($conn->query($sql) === TRUE) {
echo "update thành công";
} else {
echo "Update thất bại: " . $conn->error;
}
// ngắt kết nối
$conn->close();
2) Sử dụng MySQLi Procedural
// Kết nối CSDL
$conn = mysqli_connect('localhost', 'root', '', 'demo');
// Kiểm tra kết nối
if (!$conn) {
die("Kết nối thất bại: " . mysqli_connect_error());
}
// Lệnh update
$sql = "UPDATE News SET title='Tiêu đề updated' WHERE id=1";
// Thực hiện update
if (mysqli_query($conn, $sql)) {
echo "update thành công";
} else {
echo "Update thất bại: " . mysqli_error($conn);
}
// ngắt kết nối
mysqli_close($conn);
3) Sử dụng PDO
try {
// Kết nối
$conn = new PDO("mysql:host=localhost;dbname=demo", 'root', '');
// Thiết lập Exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Câu SQL
$sql = "UPDATE News SET title='Tiêu đề updated' WHERE id=1";
// Prepared câu SQL
$stmt = $conn->prepare($sql);
// Thực thi câu SQL
$stmt->execute();
// Xuất kết quả tổng số record đã update
echo $stmt->rowCount() . " records thành công";
}
catch (PDOException $e) {
echo 'Lỗi'. "<br>" . $e->getMessage();
}
// Ngắt kết nối
$conn = null;