
- Node.js 教程
- Node.js - 首頁
- Node.js - 簡介
- Node.js - 環境搭建
- Node.js - 第一個應用程式
- Node.js - REPL 終端
- Node.js - 命令列選項
- Node.js - 包管理器 (NPM)
- Node.js - 回撥函式概念
- Node.js - 上傳檔案
- Node.js - 傳送郵件
- Node.js - 事件
- Node.js - 事件迴圈
- Node.js - 事件發射器
- Node.js - 偵錯程式
- Node.js - 全域性物件
- Node.js - 控制檯
- Node.js - 程序
- Node.js - 應用程式擴充套件
- Node.js - 打包
- Node.js - Express 框架
- Node.js - RESTful API
- Node.js - 緩衝區
- Node.js - 流
- Node.js - 檔案系統
- Node.js MySQL
- Node.js - MySQL 入門
- Node.js - MySQL 建立資料庫
- Node.js - MySQL 建立表
- Node.js - MySQL 插入資料
- Node.js - MySQL 從…選擇
- Node.js - MySQL WHERE 子句
- Node.js - MySQL ORDER BY 子句
- Node.js - MySQL 刪除資料
- Node.js - MySQL 更新資料
- Node.js - MySQL 連線查詢
- Node.js MongoDB
- Node.js - MongoDB 入門
- Node.js - MongoDB 建立資料庫
- Node.js - MongoDB 建立集合
- Node.js - MongoDB 插入資料
- Node.js - MongoDB 查詢資料
- Node.js - MongoDB 查詢
- Node.js - MongoDB 排序
- Node.js - MongoDB 刪除資料
- Node.js - MongoDB 更新資料
- Node.js - MongoDB 限制結果
- Node.js - MongoDB 連線查詢
- Node.js 模組
- Node.js - 模組
- Node.js - 內建模組
- Node.js - 實用工具模組
- Node.js - Web 模組
- Node.js 有用資源
- Node.js - 快速指南
- Node.js - 有用資源
- Node.js - 討論
Node.js - MySQL 插入資料
MySQL 資料庫中的表儲存一個或多個行或記錄。每個記錄都包含由表結構定義的列或屬性。在本節中,您將學習如何使用 INSERT INTO 語句在 MySQL 表中新增新行,可以使用 MySQL 客戶端以及 Node.js 程式。
假設 MySQL 伺服器上已建立 mydb 資料庫,並且其中包含 EMPLOYEE 表,其結構如下:
mysql> desc employee; +--------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+----------------+ | id | int | NO | PRI | NULL | auto_increment | | name | varchar(20) | NO | | NULL | | | age | int | YES | | NULL | | | salary | float | YES | | NULL | | +--------+-------------+------+-----+---------+----------------+ 4 rows in set (0.01 sec)
INSERT INTO 語句的語法如下:
INSERT INTO table_name (field1, field2, ......) VALUES (value1,value2, ......);
表名後面的括號是欄位列表。要填充這些欄位的值放在 VALUES 子句後的第二個括號中,順序與欄位相同。如果值列表的欄位數量和順序與表結構中的欄位相同,則可以省略欄位列表。如果表結構有任何自增欄位,它們將自動填充。
開啟 MySQL 客戶端併發出以下 INSERT INTO 語句以在 EMPLOYEE 表中插入新記錄。使用 SELECT 查詢檢查是否添加了新記錄。
mysql> INSERT INTO employee VALUES(1, "Ravi", 25, 25000); Query OK, 1 row affected (0.01 sec) mysql> SELECT * FROM employee; +----+------+------+--------+ | id | name | age | salary | +----+------+------+--------+ | 1 | Ravi | 25 | 25000 | +----+------+------+--------+ 1 row in set (0.00 sec)
使用 Node.js 插入資料
現在,我們需要使用 Node.js 應用程式以程式設計方式在 MySQL 表中插入新記錄。要在表中插入資料,必須先載入其資料庫。SQL 命令 USE database 在 MySQL 客戶端終端中執行此操作。您可以透過在 createConnection() 方法中新增資料庫引數來使用資料庫:
var mysql = require('mysql'); var con = mysql.createConnection({ host: "localhost", user: "root", password: "mypassword", database: "mydb" });
插入新記錄的 Node.js 程式碼包含以下步驟:
包含 mysql 模組
呼叫 createConnection() 函式以獲取連線物件。
使用連線物件的 query() 方法,並將 INSERT INTO 查詢字串作為第一個引數傳遞。
示例
var mysql = require('mysql'); var con = mysql.createConnection({ host: "localhost", user: "root", password: "mypassword", database: "mydb" }); var qry =`INSERT INTO employee (name, age, salary) VALUES("Ravi", 25, 25000);`; con.connect(function (err) { if (err) throw err; console.log("Connected!"); con.query(qry, function (err, result) { if (err) throw err; console.log("New Record inserted successfully"); }); con.end(); });
輸出
Connected! New Record inserted successfully
在 MySQL 客戶端終端執行 SELECT 查詢以檢查是否添加了新記錄。
使用預處理語句插入資料
MySQL 支援預處理語句語法,其中變數資料動態新增到查詢字串中。使用預處理語句的 INSERT 查詢語法如下:
qry = "INSERT INTO table_name VALUES (?,?,?)", [var1, var2, var3];
在下面的程式碼中,新記錄的資料儲存在陣列中。它用作 con.query() 方法的引數。來自陣列的值替換預處理查詢中的 ?佔位符。
var mysql = require('mysql'); var con = mysql.createConnection({ host: "localhost", user: "root", password: "mypassword", database: "mydb" }); var data = ["Ravi", 25, 25000]; var qry =`INSERT INTO employee (name, age, salary) VALUES(?,?,?);`; con.connect(function (err) { if (err) throw err; console.log("Connected!"); con.query(qry,data, function (err, result) { if (err) throw err; console.log("New Record inserted successfully"); }); con.end(); });
執行上述程式時,將儲存一條值為資料陣列中給定值的新記錄。可以使用二維陣列作為值的來源插入多條記錄。
示例
var mysql = require('mysql'); var con = mysql.createConnection({ host: "localhost", user: "root", password: "mypassword", database: "mydb" }); var data = [ ["Ravi", 25, 25000], ["Anil", 26, 30000], ["Meena", 26, 27000] ]; var qry =`INSERT INTO employee (name, age, salary) VALUES(?,?,?);`; con.connect(function (err) { if (err) throw err; console.log("Connected!"); for (var i=0;i<data.length; i++){ con.query(qry,data[i], function (err, result) { if (err) throw err; console.log("New Record inserted successfully"); }) }; con.end(); });
透過在 MySQL 命令列客戶端執行以下 SELECT 查詢來檢查 employee 表中的資料
mysql> SELECT * FROM employee; +----+-------+------+--------+ | id | name | age | salary | +----+-------+------+--------+ | 1 | Ravi | 25 | 25000 | | 2 | Anil | 26 | 30000 | | 3 | Meena | 26 | 27000 | +----+-------+------+--------+ 3 rows in set (0.00 sec)