nodejs---mysql模块

安装

npm i mysql

引入并建立连接

const mysql = require('mysql')
    // 建立连接
const db = mysql.createPool({
        host: '127.0.0.1', //数据库的ip地址
        user: 'root', //登录数据库的账号
        password: 'admin2577', //登录数据库的密码
        database: 'my_db_01' //指定操作哪个数据库还有这个地方 》》》database不是datebase
    })

注意事项

  1. 首先本机要安装mysql,以上面代码为例,要有一个my_db_01的库
  2. 上述属性database写法为d a t a b a s e而不是 d a t e b a s e注意a和e不然会报错ER_NO_DB_ERROR: No database selected,即便是写错了但是测试语句 select 1仍然正常运行所以很难发现

测试是否正常工作,测试语句 select 1

    db.query('select 1', (erro, dbdata) => {
        if (erro) return console.log(erro.message)
        console.log(dbdata)
    })

以下是在数据库中有一个users表的基础上实现的
表列为

Columns:
id int AI PK
username varchar(45)
password varchar(45)
status tinyint(1)

查询列表

	const sqlstr = 'select * from users'
	db.query(sqlstr, (erro, result) => {
	    if (erro) return console.log(erro.message)
	        // 如果执行的是查询语句则返回的是数组
	    console.log(result)
	})

(以下代码?为占位符,query第二个参数为一个数组按顺序传入到占位符,当只有一个占位符可以不使用数组)
(简写形式为对象值与数据库字段对应时才可用的一种方式)

插入数据

	const user = { username: 'nae', password: '124422' }
    // ?为占位符
    const insetSql = 'insert into users (username,password) values (?,?)'
    db.query(insetSql, [user.username, user.password], (erro, result) => {
        if (erro) return console.log(erro.message)
            // 插入语句result是一个对象
            // 通过affectedRows判断是否插入成功
        if (result.affectedRows === 1) return console.log('插入成功')
    })

插入数据简写

const user2 = { username: '', password: '124422' }
const insetSqlJX = 'insert into users set ?'

db.query(insetSqlJX, user2, (erro, result) => {
    if (erro) return console.log(erro.message)
        // 插入语句result是一个对象
        // 通过affectedRows判断是否插入成功
    if (result.affectedRows === 1) return console.log('插入成功')
})

更新数据

const userupdate = { id: 17, username: 'seer', password: '213cf' }
const updateSql = 'update users set username=?,password=? where id=?'
db.query(updateSql, [userupdate.username, userupdate.password, userupdate.id], (erro, result) => {
    if (erro) return console.log(erro.message)
        // 更新语句result是一个对象
        // 通过affectedRows判断是否修改成功
    if (result.affectedRows === 1) return console.log('修改成功')
})

更新数据简写

const userupdate = { id: 17, username: 'seddrer', password: '213cf' }
const updateSql = 'update users set ? where id=?'
db.query(updateSql, [userupdate, userupdate.id], (erro, result) => {
    if (erro) return console.log(erro.message)
        // 更新语句result是一个对象
        // 通过affectedRows判断是否修改成功
    if (result.affectedRows === 1) return console.log('修改成功')
})

删除数据

const deleteSql = 'delete from users where id=?'
    // 当有多个站位符的时候第二个参数必须指定一个数组,当只有一个站位符的时候可以直接写
db.query(deleteSql, 12, (erro, result) => {
    if (erro) return console.log(erro.message)
        // 删除语句result是一个对象
        // 通过affectedRows判断是否删除成功
    if (result.affectedRows === 1) return console.log('删除成功')
})

标记删除

删除数据往往会做一个标记删除,以防为了恢复数据通过给数据库某一个字段赋值状态实现

const deleteSqlUP = 'update users set status=1 where id=?'
db.query(deleteSqlUP, 10, (erro, result) => {
    if (erro) return console.log(erro.message)
        // 删除语句result是一个对象
        // 通过affectedRows判断是否删除成功
    if (result.affectedRows === 1) return console.log('标记删除成功')
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值