Updating Data in MySQL Database from Node.js

摘要:在本教程中,您将学习如何从 Node.js 应用程序更新 MySQL 数据库中的数据。

要从 Node.js 应用程序更新数据,请使用以下步骤:

  1. 连接到 MySQL 数据库服务器
  2. 通过调用Connection对象上的query()方法来执行UPDATE语句。
  3. 关闭数据库连接。

为了连接到 MySQL 数据库,我们将使用以下config.js模块,该模块包含 MySQL 数据库服务器的必要信息,包括主机、用户、密码和数据库。

let config = {
  host    : 'localhost',
  user    : 'root',
  password: '',
  database: 'todoapp'
};

module.exports = config;
Code language: JavaScript (javascript)

更新数据示例

以下update.js程序根据特定 ID 更新待办事项的状态。

let mysql = require('mysql');
let config = require('./config.js');

let connection = mysql.createConnection(config);

// update statment
let sql = `UPDATE todos
           SET completed = ?
           WHERE id = ?`;

let data = [false, 1];

// execute the UPDATE statement
connection.query(sql, data, (error, results, fields) => {
  if (error){
    return console.error(error.message);
  }
  console.log('Rows affected:', results.affectedRows);
});

connection.end();
Code language: JavaScript (javascript)

在此示例中,我们在UPDATE语句中使用了占位符 (?)。

当我们通过调用连接对象上的query()方法来执行UPDATE语句时,我们将数据以数组的形式传递给UPDATE语句。占位符将按顺序替换为数据数组中的值。在此示例中, completed将设置为false ,并且id将设置为1

回调函数的 results 参数具有affectedRows属性,该属性返回由UPDATE语句更新的行数。

在执行程序之前,先检查一下todos表中id为1的行:

mysql> SELECT * FROM todos WHERE id = 1;
+----+-------------------------------+-----------+
| id | title                         | completed |
+----+-------------------------------+-----------+
|  1 | Learn how to insert a new row |         1 |
+----+-------------------------------+-----------+
1 row in set (0.00 sec)
Code language: JavaScript (javascript)

让我们运行update.js程序。

>node update.js
Rows affected: 1
Code language: JavaScript (javascript)

程序返回一条消息,表明受影响的行数为1。我们可以在数据库中再次检查一下,如下:

mysql> SELECT * FROM todos WHERE id = 1;
+----+-------------------------------+-----------+
| id | title                         | completed |
+----+-------------------------------+-----------+
|  1 | Learn how to insert a new row |         0 |
+----+-------------------------------+-----------+
1 row in set (0.00 sec)
Code language: JavaScript (javascript)

如您所见,completed 列中的值已更新为0 ,这在 node.js 中为false

在本教程中,我们向您展示了如何从 Node.js 应用程序更新 MySQL 中的数据。

本教程有帮助吗?