Bài 11: Cập nhật dữ liệu MySQL và PHP

Cú pháp của câu lệnh như sau. 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ú pháp của câu lệnh như sau.

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.

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

$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

$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

$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.

Bài liên quan

Bài 12: Limit dữ liệu MySQL và PHP

Như mình đã nói ở trên thì mênh đề LIMIT nhằm giới hạn số lượng records trả về từ câu lệnh truy vấn SELECT . Vậy thì trong những trường hợp nào bạn cần giới hạn số lượng records. Khi bạn đã xác định rõ bạn chỉ cần lấy một số lượng record nhất định(Tin mới, tin hot, sản phẩm hot...). Khi số ...

Vũ Văn Thanh viết 3 tuần trước

Bài 09: Xóa dữ liệu MySQL & PHP

Thông thường để xóa dữ liệu trọng một bảng thì có ba cách. Cách 1 : Sử dụng mệnh đề TRUNCATE trong MySQL. TRUNCATE TABLE table_name; Cách 2 : Sử dụng mệnh đề DELETE trong MySQL. DELETE FROM table_name WHERE [Điều_kiện] Trong trường hợp này thông thường được sử dụng để xóa ...

Trịnh Tiến Mạnh viết 3 tuần trước

Bài 08: Select dữ liệu MySQL và PHP

Câu lệnh SELECT được sử dụng để lấy dữ liệu từ một hay nhiều bảng trong CSDL. SELECT column_name(s) FROM table_name Hoặc bạn có thể sử dụng ký tự * để lấy tất cả các cột trong bảng. SELECT * FROM table_name Ví dụ sau chọn các cột id, title, slug, intro từ bảng News và hiển thị nó trên ...

Trần Trung Dũng viết 3 tuần trước

Bài 11: Cập nhật dữ liệu MySQL và PHP

Cú pháp của câu lệnh như sau. 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 ...

Vũ Văn Thanh viết 3 tuần trước

Bài 8: Phương thức truyền dữ liệu GET và POST

Nội dung tìm hiểu. So sánh giữa POST và GET Phương thức GET Trong PHP Phương thức POST trong PHP 1. Điểm giống và khác nhau giữa hai phương thức này. Nhìn chung thì cả hai phương thức này đều được dùng để gửi dữ liệu từ Client đến Server. Nhưng các bạn cần biết phương thức hoạt động của ...

Trần Trung Dũng viết 3 tuần trước
0