- 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)