node mysql多表插入_Node.js连接MySQL插入表数据

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

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

通过在connection对象上调用query()方法来执行INSERT语句。

关闭数据库连接。

请注意,我们将重用包含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语句,请使用问号(?)作为占位符。

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

执行查询后,可以从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程序将一行或多行插入到表中。

¥ 我要打赏

纠错/补充

收藏

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值