Node.js连接MySQL插入表数据

在本教程中,您将学习如何从node.js应用程序将一行或多行插入到表中。

要在表中插入新行,请按照下列步骤操作:

  1. 连接到MySQL数据库,参阅:http://www.yiibai.com/mysql/nodejs-connect.html
  2. 通过在connection对象上调用query()方法来执行INSERT语句。
  3. 关闭数据库连接。

请注意,我们将重用包含MySQL数据库信息的config.js模块。

如果您没有从上一个教程开始,那么可以参考这里的config.js模块:

let config = {
  host    : 'localhost',
  user    : 'root',
  password: '123456',
  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程序。

F:\worksp\mysql\nodejs\nodejs-connect>node insert.js
openssl config failed: error:02001003:system library:fopen:No such process

并检查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

以下insert-lastid.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语句,请使用问号(?)作为占位符。

在这个例子中,我们分别使用两个问号(??)作为titlecompleted字段。

执行查询后,可以从results对象的insertId属性中获取插入的id,如下所示 –

F:\worksp\mysql\nodejs\nodejs-connect>node insert-lastid.js
openssl config failed: error:02001003:system library:fopen:No such process
Todo Id:2

一次插入多行

以下insert-more.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],
  ['现在学习一次插入多行记录(by www.yiibai.com)', true],
  ['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语句中只使用一个问号(?),多行数据是数组数组。

您可以访问通过results对象的affectedRows属性插入的行数。

F:\worksp\mysql\nodejs\nodejs-connect>node insert-more.js
openssl config failed: error:02001003:system library:fopen:No such process
Row inserted:3

如结果所示,插入了三行,这是像我们预期的那样。

在本教程中,您已经学习了如何从node.js程序将一行或多行插入到表中。

易百教程移动端:请扫描本页面底部(右侧)二维码并关注微信公众号,回复:”教程” 选择相关教程阅读或直接访问:http://m.yiibai.com 。

上一篇:MySQL+Python连接和操作
下一篇:哥,这回真没有了

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

  • Java技术群: 227270512 (人数:2000,免费:否)
  • MySQL/SQL群: 418407075 (人数:2000,免费:否)
  • 大数据开发群: 655154550 (人数:2000,免费:否)
  • Python技术群: 287904175 (人数:2000,免费:否)
  • 人工智能深度学习: 456236082 (人数:2000,免费:否)
  • 测试工程师(新群): 415553199 (人数:1000,免费:否)
  • 前端技术群(新群): 410430016 (人数:1000,免费:是)
  • C/C++技术(新群): 629264796 (人数:1000,免费:是)
  • Node.js技术(新群): 621549808 (人数:1000,免费:是)
  • PostgreSQL数据库(新群): 539504187 (人数:1000,免费:是)
  • Linux技术: 479429477 (人数:2000,免费:否)
  • PHP开发者: 460153241 (人数:2000,免费:否)
  • Oracle数据库: 175248146 (人数:2000,免费:否)
  • C#/ASP.Net开发者: 579821706 (人数:2000,免费:是)
  • 数据分析师: 397883996 (人数:2000,免费:是)R语言,Matlab语言等技术

发表评论

您的电子邮箱地址不会被公开。