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

PHP & MySQL 17/03/2017 07:00 815
Trong bài viết này mình sẽ cập nhật một vấn đề gần cuối nhưng cũng không kém phần quan trọng đó là cậu lệnh UPDATE. Câu lệnh UPDATE được dùng phổ biến ở phía backend được dùng để cập nhật dữ liệu sau khi người dùng thay đổi.

Bài 17: Câu lệnh UPDATE trong MySQL

Cập nhật dữ liệu là một tác vụ quan trọng bậc nhất khi bạn làm việc với CSDL. Trong bài viết này chúng ta sẽ đi tìm hiểu câu lênh MySQL UPDATE trong một bảng.

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

  • 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 titleupdate_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.

Xem Thêm

Profile photo of adminTheHalfHeart

B.V.T

Sinh ra và lớn nên ở Bắc Giang. Hiện tại thì tôi đang là một lập trình viên tại VietISO. Tôi lập website này với mục đích là bookmark những gì tôi đã đọc qua và mong muốn chia sẻ những gì tôi biết.