从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程序中将一个或多个行插入表中。