Bài 11: Update dữ liệu MySQL bằng PHP

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. Update dữ liệu với MySQLi

Tương tự như các thao tác trước chúng ta sẽ có hai trường hợp sử dụng.

Sử dụng MySQLi Object-oriented:

// Kết nối CSDL
$conn = new mysqli('localhost', 'root', 'vertrigo', 'FreetutsDemo');

// 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();

Sử dụng MySQLi Procedural:

// Kết nối CSDL
$conn = mysqli_connect('localhost', 'root', 'vertrigo', 'FreetutsDemo');

// 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);

2. Update dữ liệu với PDO

try {
    // Kết nối
    $conn = new PDO("mysql:host=localhost;dbname=FreetutsDemo", 'root', 'vertrigo');
    // 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;

3. Lời kết

Các ví dụ trên chỉ demo cho các bạn nên mình không sử dụng prepared nên nếu bạn làm trong project thì nên sử dụng prepared đẻ truyền các giá trị vào các field cũng như ở trong điều kiện update nhé.

Bài này tới đây cũng gần như là bạn đã có đủ kiến thức để sử dụng PHP thao tác với CSDL MySQL rồi đấy, vì vậy mình sẽ tạm thời ngưng series này tại đây. Cám ơn các bạn đã theo dõi.

Nguồn: freetuts.net

Profile photo of adminTheHalfHeart

TheHalfHeart

Có sở thích viết tuts nên đã từng tham gia viết ở một số diễn đàn, đến năm 2014 mới có điều kiện sáng lập ra freetuts.net. Sinh năm 90 và có 1 vợ 2 con, thích ca hát và lập trình.

ĐĂNG BÌNH LUẬN: Đăng câu hỏi trên Facebook để được hỗ trợ nhanh nhất.