Câu lệnh UPDATE | MySQL & PHP

“Hãy hòa nhã với những kẻ dở hơi. Ai biết được ngày sau bạn có thể phải làm việc cho một kẻ như vậy.”

Bill Gates

Microsoft

Trong bài hướng dẫn học lập trình MySQL với PHP này. Mình sẽ hướng dẫn bạn về câu lệnh UPDATE.

Cập nhật dữ liệu lên bảng CSDL

Các câu lệnh UPDATE được sử dụng để thay đổi hoặc sửa đổi các bản ghi hiện có trong một bảng cơ sở dữ liệu.

Giả sử, website / ứng dụng của bạn cho phép người dùng thay đổi thông tin tài khoản sau khi đã tạo hồ sơ.

Lúc này người dùng sẽ nhập thông tin và gửi truy vấn đến CSDL (thực ra họ nhập xong thì Enter thôi. Chúng ta sẽ phải bắt sự kiện để chèn truy vấn) để yêu cầu cập nhật lại thông tin theo những thay đổi của họ.

Hoặc thực hiện bất kỳ thay đổi nào trên website mà cần thay đổi dữ liệu trên bảng CSDL thì cũng cần đến UPDATE.

Để làm việc này, câu lệnh UPDATE cần được sử dụng kết hợp với Mệnh đề WHERE để thực thiện cập nhật dữ liệu tại nơi được chỉ định.

Cú pháp cơ bản của câu lệnh UPDATE như sau:

UPDATE table_name SET column1=value, column2=value2,... WHERE column_name=some_value

Và cũng như các bài học trước. Ví dụ minh họa về câu lệnh UPDATE là rất cần thiết để bạn hiểu rõ cách sử dụng.

Chúng ta hãy tạo một truy vấn SQL bằng cách sử dụng câu lệnh UPDATE và mệnh đề WHERE, sau đó chúng ta sẽ thực hiện truy vấn này thông qua việc chuyển nó đến hàm mysqli_query() của PHP để cập nhật các bản ghi trên bảng CSDL.

Hãy xem xét bảng persons sau trong cơ sở dữ liệu demo:

Bảng person trong CSDL demo
Bảng persons trong CSDL demo

Code PHP trong các ví dụ sau sẽ cập nhật địa chỉ email của một người trong bảng persons có id bằng 1.

Ví dụ hướng dẫn sử dụng câu lệnh UPDATE

Câu lệnh UPDATE | MySQL & PHP
Câu lệnh UPDATE | MySQL & PHP

Chúng ta sẽ thực hiện sử dụng câu lệnh UPDATE theo 3 cách: Sử dụng MySQLi hướng thủ tục, hướng đối tượng và sử dụng PDO.

Ví dụ 1: Hướng dẫn sử dụng câu lệnh UPDATE bằng MySQLi hướng thủ tục

<?php

/* Cố gắng kết nối tới MySQL Server. Giả sử bạn đang chạy MySQL Server với thiết lập mặc định (user 'root' và không có mật khẩu)*/

$link = mysqli_connect("localhost", "root", "", "demo");

// Kiểm tra kết nối
if($link === false){
    die("ERROR: Không thể kết nối.". mysqli_connect_error());
}

// Thực thi câu lệnh UPDATE
$sql = "UPDATE persons SET email='trieusenh1@gmail.com' WHERE id=1";

if(mysqli_query($link, $sql)){
    echo "Bản ghi được cập nhật thành công";
}else{
    echo "ERROR: Không thể cập nhật bản ghi $sql".mysqli_error($link);
}

// Đóng kết nối
mysqli_close($link);
?>

Ví dụ 2: Hướng dẫn sử dụng câu lệnh UPDATE bằng MySQLi hướng đối tượng

<?php

/* Cố gắng kết nối tới MySQL Server. Giả sử bạn đang chạy MySQL Server với thiết lập mặc định (user 'root' và không có mật khẩu)*/

$mysqli = new mysqli("localhost", "root", "", "demo");

// Kiểm tra kết nối
if($link === false){
    die("ERROR: Không thể kết nối.". $mysqli->connect_error);
}

// Thực thi câu lệnh UPDATE
$sql = "UPDATE persons SET email='trieusenh1@gmail.com' WHERE id=1";

if($mysqli->query($sql) === true{
    echo "Bản ghi được cập nhật thành công";
}else{
    echo "ERROR: Không thể cập nhật bản ghi $sql. " .$mysqli->error;
}

// Đóng kết nối
$mysqli->close();
?>

Ví dụ 3: Hướng dẫn sử dụng câu lệnh UPDATE với PDO

<?php

/* Cố gắng kết nối tới MySQL Server. Giả sử bạn đang chạy MySQL Server với thiết lập mặc định (user 'root' và không có mật khẩu)*/

try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
    // Thiết lập chế độ PDO ERROR thành Ngoại lệ
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
    die("ERROR: Không thể kết nối. " . $e->getMessage());
}
 
// Thực thi câu lệnh UPDATE
try{
    $sql = "UPDATE persons SET email='trieusenh1@gmail.com' WHERE id=1";    
    $pdo->exec($sql);
    echo "Cập nhật bản ghi thành công.";
} catch(PDOException $e){
    die("ERROR: Không thể thực thi truy $sql. " . $e->getMessage());
}

// Đóng kết nối
unset($pdo);
?>

Kết thúc, trong CSDL chúng ta có được kết quả như sau:

Kết quả sau khi cập nhật thành công với câu lệnh UPDATE

Lời kết

Như vậy là qua bài này bạn đã được tìm hiểu về cách sử dụng câu lệnh UPDATE để cập nhật dữ liệu lên bảng CSDL.

Cách làm này là cách làm cứng để bạn hiểu chúng ta sẽ làm như thế nào. Còn trong thực tế, dữ liệu cần cập nhật của chúng ta sẽ là động, chúng ta sẽ phải bắt sự kiện để thực thi.

Nếu muốn tìm hiểu thì có thể đọc bài viết này: Cách cập nhật dữ liệu bằng MySQLi

Chúc bạn thành công!

PHPDev

Có thể bạn muốn xem

Pesudo Element trong CSS

Sử dụng phần tử giả (Pesudo element) trong CSS là một cách để áp dụng các quy tắc CSS cho phần tử không xác định vị trí trong DOM tree.

Pesudo class trong CSS

Bộ chọn lớp giả CSS (Pesudo class Selector) khớp với các thành phần dựa trên một điều kiện bổ sung và không nhất thiết phải được định nghĩa trong DOM tree.

Leave a reply

Please enter your comment!
Please enter your name here