在本教學中,您將學習如何從node.js應用程式更新MySQL資料庫中的資料。
要從node.js應用程式更新資料,請使用以下步驟:
Connection
物件上呼叫query()
方法來執行UPDATE語句。要連線到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
語句。 預留位置將被陣列中的值替換為陣列。 在這個例子中,將id
為1
的那條記錄的completed
列將被設定為false
。
回撥函式的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)
現在,我們來執行上面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中的資料。