Hướng dẫn insert mysql nodejs

Code ví dụ Node.js MySQL – Insert / save dữ liệu

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));

Để insert dữ liệu vào table customer ta dùng câu lệnh insert.

Ví dụ:

INSERT INTO customer (name, address) VALUES ('kai', 'viet nam');

Code ví dụ node.js insert:

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 = "INSERT INTO customer (name, address) VALUES ('kai', 'viet nam');";

con.query(sql, function (err, result) {
    if (err) throw err;
    console.log("inserted!");
 });
  
con.end(function(err) {
  if (err) throw err;
  console.log("Closed!");
});

Lưu file trên với tên insert-one.js và chạy (nhớ phải cài module mysql trước nhé)

Hướng dẫn insert mysql nodejs

kết quả:

Hướng dẫn insert mysql nodejs

Trường hợp muốn insert nhiều bản ghi cùng lúc

Để insert nhiều hơn 1 bản ghi, ta cần tạo một mảng chứa các giá trị cần insert và chèn nó vào câu sql thông qua dấu '?'

Ví dụ:

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 = "INSERT INTO customer (name, address) VALUES ?;";
var values = [
  ['Super Man', 'DC'],
  ['Iron Man', 'Marven'],
  ['Donal Duck', 'Disney']
];

con.query(sql, [values], function (err, result) {
    if (err) throw err;
    console.log(result);
 });
  
con.end(function(err) {
  if (err) throw err;
  console.log("Closed!");
});

Lưu file trên với tên insert-multi.js và chạy

Hướng dẫn insert mysql nodejs

Kết quả:

Hướng dẫn insert mysql nodejs

Code ví dụ Node.js MySQL – Insert / save dữ liệu stackjava.com

Okay, done!

Download code ví dụ trên tại đây.

Referneces:

https://www.npmjs.com/package/mysql

Insert một bản ghi

Để chèn dữ liệu vào một bảng trong MySQL, hãy sử dụng câu lệnh "INSERT" hoặc "INSERT INTO".

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "nodejs_db"
});

con.connect(function(err) {
  if (err) throw err;
  console.log("Connected!");
  var sql = "INSERT INTO customers (name, address) VALUES ('V1Study', 'Hà Nội')";
  con.query(sql, function (err, result) {
    if (err) throw err;
    console.log("1 record inserted");
  });
});

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

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

Kết quả:

Connected!
1 record inserted

Insert nhiều bản ghi

Để chèn nhiều bản ghi, hãy tạo một mảng chứa các giá trị và chèn một dấu chấm hỏi vào sql, dấu chấm hỏi này sẽ được thay thế bằng mảng giá trị:

INSERT INTO customers (name, address) VALUES ?

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "nodejs_db"
});

con.connect(function(err) {
  if (err) throw err;
  console.log("Connected!");
  var sql = "INSERT INTO customers (name, address) VALUES ?";
  var values = [
    ['Long', 'Hà Nội'],
    ['Phương', 'Hà Nam'],
    ['Vịnh', 'Hà Tĩnh'],
  ];
  con.query(sql, [values], function (err, result) {
    if (err) throw err;
    console.log("Number of records inserted: " + result.affectedRows);
  });
});

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

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

Kết quả:

Connected!
Number of records inserted: 3

Đối tượng result

Khi thực hiện một truy vấn thì một đối tượng result sẽ đượ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: 14,
  insertId: 0,
  serverStatus: 2,
  warningCount: 0,
  message: '\'Records:14  Duplicated: 0  Warnings: 0',
  protocol41: true,
  changedRows: 0
}

Để hiển thị các giá trị của các thuộc tính thì ta có thể làm như sau:

console.log(result.affectedRows)

Kết quả:

Lấy ID đã chèn

Đối với các bảng có trường id tăng dần tự động, bạn có thể lấy id của hàng bạn vừa chèn bằng cách yêu cầu đối tượng result như sau:

Lưu ý: Để có thể lấy được id đã chèn thì ta chỉ chèn một hàng (record) duy nhất.

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "nodejs_db"
});

con.connect(function(err) {
  if (err) throw err;
  var sql = "INSERT INTO customers (name, address) VALUES ('Michelle', 'Blue Village 1')";
  con.query(sql, function (err, result) {
    if (err) throw err;
    console.log("1 record inserted, ID: " + result.insertId);
  });
});

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

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

Kết quả: