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.
Bài viết này được đăng tại [free tuts .net]
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.
Danh sách file tải về
Tên file tải về | Pass giải nén |
---|---|
Tải bài học định dạng PDF | freetuts.net hoặc gameportable.net |