Tóm tắt : trong hướng dẫn này, bạn sẽ học cách chèn một hoặc nhiều hàng vào một bảng từ ứng dụng node.js.
Để chèn một hàng mới vào bảng, bạn làm theo các bước sau:
- Kết nối với cơ sở dữ liệu MySQL. .
- Thực thi một
INSERT
câu lệnh bằng cách gọi query()
phương thức trên một connection
đối tượng. - Đóng kết nối cơ sở dữ liệu.
Lưu ý rằng chúng tôi sẽ sử dụng lại mô-đun config.js chứa thông tin cơ sở dữ liệu MySQL.
Nếu bạn chưa làm theo hướng dẫn trước, đây là mô-đun config.js:
let config = { host : 'localhost', user : 'root', password: '', database: 'todoapp' }; module.exports = config;
Ngôn ngữ mã: JavaScript ( javascript )
Chèn một hàng vào một bảng
Chương trình insert.js sau chèn một hàng mới vào todos
bảng:
let mysql = require('mysql'); let config = require('./config.js'); let connection = mysql.createConnection(config); let sql = `INSERT INTO todos(title,completed) VALUES('Learn how to insert a new row',true)`; connection.query(sql); connection.end();
Ngôn ngữ mã: JavaScript ( javascript )
Hãy thực thi chương trình insert.js.
> node insert.js
Ngôn ngữ mã: JavaScript ( javascript )
và kiểm tra dữ liệu từ todos
bảng:
mysql> select * from todos; +----+-------------------------------+-----------+ | id | title | completed | +----+-------------------------------+-----------+ | 1 | Learn how to insert a new row | 1 | +----+-------------------------------+-----------+ 1 row in set (0.00 sec)
Ngôn ngữ mã: JavaScript ( javascript )
Như bạn có thể thấy, chương trình đã chèn một hàng mới vào todos
bảng.
Chèn một hàng và trả lại id đã chèn
Chương trình insert2.js sau đây chèn một hàng mới vào todos
bảng và trả về id đã chèn.
let mysql = require('mysql'); let config = require('./config.js'); let connection = mysql.createConnection(config); let stmt = `INSERT INTO todos(title,completed) VALUES(?,?)`; let todo = ['Insert a new row with placeholders', false]; connection.query(stmt, todo, (err, results, fields) => { if (err) { return console.error(err.message); } console.log('Todo Id:' + results.insertId); }); connection.end();
Ngôn ngữ mã: JavaScript ( javascript )
Để truyền dữ liệu vào một câu lệnh SQL, bạn sử dụng các dấu chấm hỏi (?) làm trình giữ chỗ.
Trong ví dụ này, chúng tôi sử dụng hai dấu chấm hỏi (?,?) tương ứng cho title
và completed
trường.
Sau khi thực hiện truy vấn, chúng ta có thể lấy id đã chèn từ thuộc tính insertId của đối tượng kết quả.
>node insert2.js Todo Id:2
Ngôn ngữ mã: JavaScript ( javascript )
Chèn nhiều hàng cùng một lúc
Chương trình insert3.js sau đây chèn nhiều hàng vào todos
bảng:
let mysql = require('mysql'); let config = require('./config.js'); let connection = mysql.createConnection(config); let stmt = `INSERT INTO todos(title,completed) VALUES ? `; let todos = [ ['Insert multiple rows at a time', false], ['It should work perfectly', true] ]; connection.query(stmt, [todos], (err, results, fields) => { if (err) { return console.error(err.message); } console.log('Row inserted:' + results.affectedRows); }); connection.end();
Ngôn ngữ mã: JavaScript ( javascript )
Lưu ý rằng chúng tôi chỉ sử dụng một dấu chấm hỏi (?) trong INSERT
câu lệnh và dữ liệu nhiều hàng là một mảng của các mảng.
Bạn có thể truy cập số lượng hàng được chèn thông qua thuộc affectedRows
tính của đối tượng kết quả.
>node insert3.js Row inserted:2
Ngôn ngữ mã: JavaScript ( javascript )
Như thể hiện trong kết quả, hai hàng đã được chèn vào, đó là những gì chúng tôi mong đợi.
Trong hướng dẫn này, bạn đã học cách chèn một hoặc nhiều hàng vào một bảng từ chương trình node.js.