mysql 模块
npm 上的第三方模块,用于在 node.js 项目中操作 MySQL 数据库
使用
导入
1
| const mysql = require('mysql')
|
建立连接
1 2 3 4 5 6 7
| const db = mysql.createPool({ host: '', port: "3306", user: '', password: '', database: '' })
|
操作数据库
查询
1 2 3 4 5 6 7
| const sqlStr = 'select * from users'; db.query(sqlStr, (err, results) => { if (err) { return console.log("错误信息:" + err.message); } return results; });
|
SQL 是查询语句,results 是一个数组,里面是数据库返回的查询结果
插入
1 2 3 4 5 6 7 8 9 10
| const newUser = {username:'zs', password:'123456'} const sqlStr = 'insert into users (username, password) values (?, ?)'; db.query(sqlStr, [newUser.username, newUser.password], (err, results) => { if (err) { return console.log("错误信息:" + err.message); } if (results.affectedRows === 1) { return console.log('数据插入成功') } });
|
在执行的 SQL 语句中,可以使用 ‘?’ 占位
SQL 是插入语句,results 是一个对象,results.affectedRows
是数据库改变行数
1 2 3 4 5 6 7 8 9 10
| const newUser = {username:'zs', password:'123456'} const sqlStr = 'insert into tableName set ?'; db.query(sqlStr, newUser, (err, results) => { if (err) { return console.log("错误信息:" + err.message); } if (results.affectedRows === 1) { return console.log('数据插入成功') } });
|
如果数据对象中的属性与数据表字段一一对应,就可以使用上面这种写法
更新
1 2 3 4 5 6 7 8 9 10
| const newUser = {uid:'1', username:'zs', password:'123456'} const sqlStr = 'update users set username=?, password=? where uid=?'; db.query(sqlStr, [newUser.username, newUser.password, newUser.uid], (err, results) => { if (err) { return console.log("错误信息:" + err.message); } if (results.affectedRows === 1) { return console.log('数据更新成功') } });
|
1 2 3 4 5 6 7 8 9 10
| const newUser = {uid:'1', username:'zs', password:'123456'} const sqlStr = 'update users set ? where uid=?'; db.query(sqlStr, [newUser, newUser.uid], (err, results) => { if (err) { return console.log("错误信息:" + err.message); } if (results.affectedRows === 1) { return console.log('数据更新成功') } });
|
如果数据对象中的属性与数据表字段一一对应,就可以使用上面这种写法
删除
推荐根据 id 来删除数据
1 2 3 4 5 6 7 8 9
| const sqlStr = 'delete from users where uid=?'; db.query(sqlStr, 1, (err, results) => { if (err) { return console.log("错误信息:" + err.message); } if (results.affectedRows === 1) { return console.log('删除数据成功') } });
|
只有一个占位符时,可以省略数组
标记删除
设计一个 status 状态码字段,来标记这条数据是否被删除
1 2 3 4 5 6 7 8 9
| const sqlStr = 'update users set status=? where uid=?'; db.query(sqlStr, [1,3], (err, results) => { if (err) { return console.log("错误信息:" + err.message); } if (results.affectedRows === 1) { return console.log('标记删除成功') } });
|