Để chèn một hàng mới vào bảng, bạn làm theo các bước sau
Thực hiện kết nối với cơ sở dữ liệu
Thực hiện câu lệnh INSERT bằng cách gọi phương thức query() trên đối
tượng connection
Đóng kết nối tới cơsở dữ liệu
Ở đây tôi sẽ tạo ra module config.js để chứa cấu hình kết nối tới database. File config.js let config = { host : 'localhost', user : 'root', password: '', database: 'todoapp' }; module.exports = config; Chèn một hàng vào một bảng
Chương trình insert.js chèn một hàng vào một bảng.
var mysql = require("mysql"); var config = require("./config.js");
var connection = mysql.createConnection(config); // câu lệnh insert
var sql = `INSERT INTO todos(title,completed)
VALUES('Họccách insert dữ liệu vào database',true)`; // thực thi câu lệnh insert
connection.query(sql);
Phạm Đình Nam –Trường Caođẳng nghề Đà Lạt Trang 52
Thực thi chương trình insert.js
node insert
và kiểm tra lại bảng todos trong CSDL.
Chèn một hàng và trả về ID được chèn
Chương trình dưới đây chèn một hàng mới vào bảng todos và trả về id được chèn
vào.
File insert2.js
let mysql = require('mysql'); let config = require('./config.js');
let connection = mysql.createConnection(config); let stmt = `INSERT INTO todos(title,completed) VALUES(?,?)`;
let todo = ['Chèn hàng mới vào database', false]; // Thực thi truy vấn SQL
connection.query(stmt, todo, (err, results, fields) => { if (err) {
return console.error(err.message); }
// Nhận ID vừa Insert
console.log('Todo Id:' + results.insertId); });
connection.end();
Để chuyển dữ liệu vào câu lệnh Database, bạn sử dụng dấu hỏi (?) làm phần giữ
chỗ.
Trong ví dụ này, tôi sử dụng 2 dấu chấm hỏi (?,?) cho các
trường title và completed
Sau khi truy vấn xong chúng ta có thể lấy id từ thuộc tính insertId từ đối
tượng results .
Chèn nhiều hàng vào cùng một lúc
Chương trình dưới đây chèn nhiều hàng vào bảng todos.
File insert3.js
let mysql = require('mysql'); let config = require('./config.js');
Phạm Đình Nam –Trường Caođẳng nghề Đà Lạt Trang 53 let connection = mysql.createConnection(config);
// Câu lệnh Insert
let stmt = `INSERT INTO todos(title,completed) VALUES ? `; let todos = [
['Chèn nhiều dữ liệu cùng lúc 1', false], ['Chèn nhiều dữ liệu cùng lúc 1', true] ];
// Thực thi câu lệnh SQL
connection.query(stmt, [todos], (err, results, fields) => { if (err) {
return console.error(err.message); }
// nhận được số hàng đã insert
console.log('Row inserted:' + results.affectedRows); });
// Đóng kết
connection.end();