+629 votes
,post bởi (2.6k điểm)

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:

  1. Kết nối với cơ sở dữ liệu MySQL. .
  2. Thực thi một INSERTcâu lệnh bằng cách gọi query()phương thức trên một connectionđối tượng.
  3. Đó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 todosbảng:

let mysql = require('mysql'); let config = require('./config.js'); let connection = mysql.createConnection(config); // insert statment let sql = `INSERT INTO todos(title,completed) VALUES('Learn how to insert a new row',true)`; // execute the insert statment 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ừ todosbả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 todosbả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 todosbả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]; // execute the insert statment connection.query(stmt, todo, (err, results, fields) => { if (err) { return console.error(err.message); } // get inserted id 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 titlevà completedtrườ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 todosbảng:

let mysql = require('mysql'); let config = require('./config.js'); let connection = mysql.createConnection(config); // insert statment let stmt = `INSERT INTO todos(title,completed) VALUES ? `; let todos = [ ['Insert multiple rows at a time', false], ['It should work perfectly', true] ]; // execute the insert statment connection.query(stmt, [todos], (err, results, fields) => { if (err) { return console.error(err.message); } // get inserted rows console.log('Row inserted:' + results.affectedRows); }); // close the database connection 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 INSERTcâ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 affectedRowstí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.

Your answer

Your name to display (optional):
Privacy: Your email address will only be used for sending these notifications.
Anti-spam verification:
To avoid this verification in future, please log in or register.
...