微信小程序使用云函数进行mysql操作

其他操纵数据库方式的一些问题

现在使用小程序,对数据库的选择一般有两种:小程序云数据库或者外部mysql数据库。
云数据库虽然方便,但其劣势在于其他终端(网页等)对云数据库访问需要请求access_token;
我们知道小程序对外链管理非常严格,mysql数据库需要通过服务器上跑php脚本来进行操作,对于没怎么学过php的菜鸟本渣,确实有点过于难了。
最近在一个大佬的基础上,把连接mysql数据库的操作封装进了云函数,在js中只需要请求云函数,带着sql语句即可获取返回值。
参考链接:微信小程序云开发连接mysql数据库,小程序云函数操作mysql数据库

准备工作

上面的链接里面都已经说的很详细了,这里就简单说一下:
首先需要注册小程序的时候选云开发小程序;
然后电脑需要安装node.js并添加进环境变量;
需要在app.js对云环境进行初始化;
新建的云函数安装mysql2依赖;
云函数需要部署在云端才能生效;

云函数代码

// 云函数入口文件
const cloud = require('wx-server-sdk')
//引入mysql操作模块
const mysql = require('mysql2/promise')
cloud.init()
// 云函数入口函数
exports.main = async(event, context) => {
  //外部参数传入的数据在event里面,把其中的sql语句存下来
  var sql = event.sql;
  try {
    const connection = await mysql.createConnection({
      host: "自己mysql数据库的ip地址",
      database: "数据库名字",
      user: "权限账号",
      password: "权限密码"
    })

    const [rows, fields] = await connection.execute(sql)//sql操作数据库

    return rows;
  } catch (err) {
    console.log("链接错误", err)
    return err
  }
}

调用云函数时候的代码

wx.cloud.callFunction({
                  name:'mysql',//云函数名称
                  data:{
                    sql : 'INSERT INTO `表名`(列名) VALUES(\''++'\')'//sql插入语句
                  },
                  success: res=>{
                    console.log(res)
                  },
                  fail: err =>{
                    console.log('[云函数] [db-operator] 调用失败',err)
                  }
                })

最后还需要注意的一些小事情:

sql语句在小程序里面写的时候一定要理清楚几层 ’ ’ ’ 之间的关系;
擅于使用console.log()发现问题在哪;
祝大家成功!

参考链接:
https://blog.csdn.net/qiushi_1990/article/details/98361329?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8Fmysql2&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-4-98361329.pc_search_result_hbase_insert&spm=1018.2226.3001.4187

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值