Node.js+MySQL更新資料

2019-10-18 00:54:42

在本教學中,您將學習如何從node.js應用程式更新MySQL資料庫中的資料。

要從node.js應用程式更新資料,請使用以下步驟:

要連線到MySQL資料庫,我們將使用以下config.js模組,其中包含MySQL資料庫伺服器的必要資訊,包括主機,使用者,密碼和資料庫。

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

module.exports = config;

更新資料範例

以下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();

在這個例子中,我們在UPDATE語句中使用了預留位置(?)。

當通過在連線物件上呼叫query()方法執行UPDATE語句時,以陣列的形式將資料傳遞給UPDATE語句。 預留位置將被陣列中的值替換為陣列。 在這個例子中,將id1的那條記錄的completed列將被設定為false

回撥函式的results引數有affectedRows屬性,返回UPDATE語句更新的行數。

在執行程式之前,請檢視todos表中id1的行記錄資訊:

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)

現在,我們來執行上面update.js程式。

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

程式返回一條訊息,指示受影響的行數為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)

您可以看到,completed列中的值已更新為0,在node.js中為false

在本教學中,我們向您展示了如何從node.js應用程式更新MySQL中的資料。