Hướng dẫn update mysql nodejs

Bạn có thể cập nhật các bản ghi hiện có trong bảng bằng cách sử dụng câu lệnh "UPDATE".

Ví dụ sau sẽ cập nhật địa chỉ từ "Hà Tĩnh" thành "Hà Tây":

var mysql = require['mysql'];

var con = mysql.createConnection[{
  host: "localhost",
  user: "root",
  password: "",
  database: "nodejs_db"
}];

con.connect[function[err] {
  if [err] throw err;
  var sql = "UPDATE customers SET address = 'Hà Tây' WHERE address = 'Hà Tĩnh'";
  con.query[sql, function [err, result] {
    if [err] throw err;
    console.log[result.affectedRows + " record[s] updated"];
  }];
}];

Lưu ý mệnh đề WHERE trong cú pháp UPDATE: Mệnh đề WHERE chỉ định bản ghi nào hoặc các bản ghi cần được cập nhật. Nếu bạn bỏ qua mệnh đề WHERE, tất cả các bản ghi sẽ được cập nhật!

Lưu mã ở trên vào tệp có tên "demo_db_update.js" và chạy tệp:

C:\Users\Your Name>node demo_db_update.js

Kết quả:

1 record[s] updated

Đối tượng result

Khi thực hiện một truy vấn, một đối tượng result được trả về.

Đối tượng result chứa thông tin về cách truy vấn ảnh hưởng đến bảng.

Đối tượng result trả về từ ví dụ trên trông giống như sau:

{
  fieldCount: 0,
  affectedRows: 1,
  insertId: 0,
  serverStatus: 34,
  warningCount: 0,
  message: '[Rows matched: 1 Changed: 1 Warnings: 0',
  protocol41: true,
  changedRows: 1
}

Để truy cập vào thuộc tính của đối tượng result ta sử dụng toán tử [.].

Ví dụ nếu ta muốn truy cập thuộc tính affectedRows để biết số lượng cột chịu ảnh hưởng từ câu lệnh truy vấn thì ta làm như sau:

console.log[result.affectedRows]

Và kết quả sẽ là:

1

Code ví dụ Node.js MySQL Update [sửa row, records]

[Xem thêm: Tự học Node.js qua ví dụ]

Giả sử bạn đã có sẵn database demo với table customer [id, name, address]

[Xem lại: Code ví dụ node.js tạo database, tạo table]

CREATE DATABASE demo;
CREATE TABLE demo.customer [id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR[255], address VARCHAR[255]];

và insert sẵn các bản ghi sau:

INSERT INTO `demo`.`customer` [`name`, `address`] VALUES ['kai', 'ha noi - viet nam'];
INSERT INTO `demo`.`customer` [`name`, `address`] VALUES ['sena', 'vinh phuc - viet nam'];
INSERT INTO `demo`.`customer` [`name`, `address`] VALUES ['iron man', 'new york - usa'];
INSERT INTO `demo`.`customer` [`name`, `address`] VALUES ['batman', 'gotham - usa'];
INSERT INTO `demo`.`customer` [`name`, `address`] VALUES ['bruce lee', 'hong kong - china'];

Code ví dụ node.js sửa address của bản ghi có id = 1 thành ‘No. 1 - Thai Ha - Dong Da - Ha Noi

[nhớ phải cài module mysql trước nhé]

var mysql = require['mysql'];

var con = mysql.createConnection[{
  host: "localhost",
  port: "3306",
  user: "root",
  password: "admin1234",
  database: "demo"
}];

con.connect[function[err] {
  if [err] throw err;
  console.log["Connected!"];
}];

var sql = "UPDATE customer SET address = 'No. 1 - Thai Ha - Dong Da - Ha Noi' WHERE id = 1";

con.query[sql, function [err, result] {
    if [err] throw err;
    console.log["Number of records updated: " + result.affectedRows];
 }];
  
con.end[function[err] {
  if [err] throw err;
  console.log["Closed!"];
}];

Đối tượng result trả về sẽ gồm các thông tin sau:

{
  fieldCount: ,
  affectedRows: ,
  insertId: ,
  serverStatus: ,
  warningCount: ,
  message: ,
  protocol41: ,
  changedRows: 
}

Chạy file index.js

Kiểm tra lại database:

* Lưu ý, mệnh đề WHERE trong câu lệnh UPDATE dùng để xác định bản ghi được update, nếu bạn không có mệnh đệnh WHERE thì nó sẽ thực hiện update đối với tất cả các bản ghi.

Ví dụ "UPDATE customer SET address = 'No. 1 - Thai Ha - Dong Da - Ha Noi'" thì nó sẽ thực hiện update address thành ‘No. 1 - Thai Ha - Dong Da - Ha Noi‘ cho tất cả các bản ghi

Chủ Đề