Cú pháp của câu lệnh như sau.
1 2 3 | UPDATE [Tên_Bảng] SET [Column_1] = [Giá_trị_1], [Column_2] = [Giá_trị_2],... WHERE [Điều_Kiện] |
Tương tụ như câu lệnh DELETE thì bạn cần truyền vào điều kiện UPDATE một record hoặc một nhóm records. Không thì câu lệnh mặc định sẽ UPDATE tất cả các records hiện có trong bảng. Thông thường thì chúng ta thường truyền điều kiện theo khóa chính.
Ví dụ: Trong bảng News có
- id=1;
- title = 'Xây dựng hàm trong PHP'.
- update_at = 1492361353
Bây giờ mình muốn cập nhật hai trường title và update_at theo nội dung sau.
- title: "Xây dựng hàm trong PHP nâng cao"
- update_at = Thời gian hiện tại.
Thì bạn sẽ có câu lệnh UPDATE như sau.
1 2 3 | UPDATE News SET title = 'Xây dựng hàm PHP nâng cao' , update_at = time () WHERE id= '1' |
1. UPDATE dữ liệu với MySQLi
Cũng giống như các bài viết khác ở các phần trước thì sẽ có hai kiểu viết khác nhau và chúng ta sẽ đi qua sử dụng từng kiểu một.
1.1 Sử dụng MySQLi Object-oriented
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | $host = "localhost" ; $username = "root" ; $password = "" ; $dbName = "MySQLDemo" ; // Tạo kết nối $dbconn = new mysqli( $host , $username , $password , $dbName ); // Kiểm tra kết nối if ( $dbconn -connect_error) { die ( "Kết nối thất bại: " . $dbconn -connect_error); } // Câu lệnh UPDATE $sql = "UPDATE News SET title='Xây dừng hàm PHP nâng cao' WHERE id=1" ; // Thực thi câu lệnh UPDATE if ( $dbconn -query( $sql )===TRUE){ echo "UPDATE thành công" ; } else { echo "Lỗi :" . $dbconn -error(); } // Ngắt kết nối $dbconn -close(); |
1.2 Sử dụng MySQLi Procedural
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | $host = "localhost" ; $username = "root" ; $password = "" ; $dbName = "MySQLDemo" ; // Tạo kết nối $dbconn = mysqli_connect( $host , $username , $password , $dbName ); // Kiểm tra kết nối if (! $dbconn ) { die ( "Kết nối thất bại: " . mysqli_connect_error()); } // Câu lệnh UPDATE $sql = "UPDATE News SET title='Xây dừng hàm PHP nâng cao' WHERE id=1" ; // Thực thi câu lệnh UPDATE if (mysqli_query( $dbconn , $sql )===TRUE){ echo "UPDATE thành công" ; } else { echo "Lỗi :" .mysqli_error( $dbconn ); } // Ngắt kết nối mysqli_close( $dbconn ); |
2. UPDATE dữ liệu với PDO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | $host = "localhost" ; $username = "root" ; $password = "" ; $dbName = "MySQLDemo" ; try { // Kết nối CSDL $dbconn = new PDO( "mysql:host=$host;dbname=$dbName" , $username , $password ); // Khai báo exception $dbconn -setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Câu lệnh UPDATE $sql = "UPDATE News SET title='Xây dừng hàm PHP nâng cao' WHERE id=1" ; // Thực thi câu lệnh UPDATE $dbconn - exec ( $sql ); echo "UPDATE thành công!" ; } catch (PDOException $e ) { echo 'Lỗi' . "br" . $e -getMessage(); } // Ngắt kết nối $dbconn = null; |
3. Tổng kết.
Lưu ý rằng bạn cần sử dụng thêm prepared để đảm bảo an toàn dữ liệu nếu bạn đang làm một ứng dụng thực tế. Thì trong bài viết này bạn đã học được làm sao để UPDATE dữ liệu vào trong CSDL sử dụng PHP.