从Node.js将行插入表
时间:2019-11-20 08:52:40 来源:igfitidea点击:
简介:在本教程中,您将学习如何从node.js应用程序中将一个或多个行插入表中。
要将新行插入表中,请按照下列步骤操作:
连接到MySQL数据库。
通过在连接对象上调用query()方法来执行INSERT语句。
关闭数据库连接。
注意,我们将重用包含MySQL数据库信息的config.js模块。
如果您未遵循上一教程,则为config.js模块:
let config = {
host : 'localhost',
user : 'root',
password: '',
database: 'todoapp'
};
module.exports = config;
在表格中插入一行
以下insert.js程序将新行插入todos表:
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();
让我们执行insert.js程序。
> node insert.js
并检查todos表中的数据:
mysql> select * from todos; +----+-------------------------------+-----------+ | id | title | completed | +----+-------------------------------+-----------+ | 1 | Learn how to insert a new row | 1 | +----+-------------------------------+-----------+ 1 row in set (0.00 sec)
如您所见,该程序在todos表中插入了新行。
插入一行并返回插入的ID
以下insert2.js程序在todos表中插入新行,并返回插入的ID。
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();
要将数据传递到SQL语句,请使用问号(?)作为占位符。
在此示例中,我们分别对标题和完成字段使用两个问号(?,?)。
执行查询后,我们可以从结果对象的insertId属性中获取插入的ID。
>node insert2.js Todo Id:2
一次插入多行
以下insert3.js程序将多个行插入todos表:
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();
注意,我们在INSERT语句中仅使用一个问号(?),并且多行数据是一个数组数组。
您可以通过结果对象的受影响的行属性访问插入的行数。
>node insert3.js Row inserted:2
如结果所示,插入了两行,这是我们期望的。
在本教程中,您学习了如何从node.js程序中将一个或多个行插入表中。

