评论

微信小程序云开发连接mysql数据库,小程序云函数操作mysql数据库

小程序云开发操作mysql数据库

小程序云开发的功能是越来越强大了,现在小程序云开发可以直接借助云函数来链接mysql数据,操作mysql数据库了,今天就来给大家讲一讲如何使用小程序云开发的云函数来操作mysql数据库。

首先要明确一点,就是小程序云开发的云函数是基于node.js的,所以我们使用node.js的mysql2模块可以直接来链接并操作mysql数据库,所以我们现在要做的就是怎么样在云函数里使用mysql2模块,并且借助这个模块类库来实现mysql数据库的链接。

老规矩,先看效果图


我们这里要做的就是在云函数里链接mysql数据库,并返回链接的mysql数据库的版本号。mysql数据库都能成功链接了,后面对mysql的增删改查操作也就是小意思了。所以我们这里先成功的链接mysql数据库才是最重要的。

一,创建小程序并引入云开发

这里我不在做讲解,我之前有讲过小程序云开发的初始化创建,也有录视频讲解,不懂的同学可以移步去看下,云开发项目的创建视频
https://edu.csdn.net/course/play/9604/284440

这里有3点需要注意的

1,一定要在app.js里做云开发环境的初始化

2,在project.config.json里配置云函数的目录

3,一定要用自己注册的小程序的appid

二,创建云函数,名字就叫mysql吧。

在我们的cloud,右键创建云函数

三,安装mysql2模块依赖

1,右键我们的mysql云函数,点击在终端中打开

2,在终端中输入 npm install mysql2

需要你电脑安装npm,如果没有安装,请自行百度,网上很多npm的安装教程的。

等待我们的mysql2安装成功

四,编写mysql云函数链接mysql数据库


完整的代码给大家贴出来

// 云函数入口文件
const cloud = require('wx-server-sdk')
//引入mysql操作模块
const mysql = require('mysql2/promise')
cloud.init()
// 云函数入口函数
exports.main = async(event, context) => {
  //链接mysql数据库的test库,这里你可以链接你mysql中的任意库
  try {
    const connection = await mysql.createConnection({
      host: "你的服务器ip",
      database: "操作那个数据库",
      user: "mysql使用后名",
      password: "mysql密码"
    })
    const [rows, fields] = await connection.execute('SELECT version();')
    return rows;
  } catch (err) {
    console.log("链接错误", err)
    return err
  }
}

记得把上面的host,database,user,password 替换成你自己的。

五,上传并部署云函数


部署成功

这里有一点需要注意,就是你不能用云函数链接你本地mysql数据库,因为上传云函数以后,是上传到里微信服务器,没有办法调用到你本地mysql到,除非你设置下本地mysql可以被外界访问,或者使用你自己服务器上的mysql数据库。

这样就可以成功的使用微信小程序链接我们的mysql数据库了。

到这里我们点用自己定义的mysql云函数,就可以成功的链接我们的mysql数据库了。

是不是很简单。
更多关于云开发的知识,可以翻看我之前的文章,也可以看我录制的视频讲解

视频讲解

https://edu.csdn.net/course/detail/9604

有任何关于小程序的问题都可以加石头哥微信2501902696(备注小程序)

我们下一节给大家讲解使用小程序云开发实现邮件的发送功能。敬请期待。

点赞 7
收藏
评论

16 个评论

  • 。
    2021-04-27

    云端测试返回结果是这个{"errorCode":-1,"errorMessage":"Async invoking task timed out after 20 seconds","statusCode":433},60s也不行,按照上边的步骤一步步来的,这是怎么回事老师

    2021-04-27
    赞同 1
    回复
  • 罗梅光
    罗梅光
    2019-10-23

    视频感觉没有讲如何操作sql数据库,讲的是微信提供的云数据库吧?

    2019-10-23
    赞同 1
    回复 1
    • 编程小石头
      编程小石头
      2019-10-25
      云开发用的不是mysql。后面我会录制完整的讲解视频
      2019-10-25
      回复
  • 罗梅光
    罗梅光
    2019-10-11

    收藏下。

    2019-10-11
    赞同 1
    回复 2
  • 小石头
    小石头
    2019-08-18

    请问得到的数据如何显示在模拟器中呢

    2019-08-18
    赞同 1
    回复 2
    • 编程小石头
      编程小石头
      2019-08-19
      用数据绑定 就可以显示出来了,你都可以显示在控制台了,再显示到模拟器页面很简单的,你看下官方数据绑定那块的文档。
      2019-08-19
      回复
    • 小石头
      小石头
      2019-08-20回复编程小石头
      pages里面的代码能给下嘛,怎么能让得到的信息显示在控制台呢?
      2019-08-20
      1
      回复
  • 谦谦君子
    谦谦君子
    2019-08-04

    把属于自己的mysql数据库密码暴露在腾讯云函数里,有没有安全问题?

    2019-08-04
    赞同 1
    回复 3
    • 编程小石头
      编程小石头
      2019-08-05
      放在云函数里没事的,或者你单独开一个mysql数据库,专门服务于小程序的就行了
      2019-08-05
      回复
    • June
      June
      2019-08-08回复编程小石头
      别人爬了你的小程序源码,不顺带拿了你mysql的账号,密码,服务器ip了吗
      2019-08-08
      回复
    • 编程小石头
      编程小石头
      2019-08-08
      可以设置密文。
      2019-08-08
      回复
  • 浮生
    浮生
    2023-07-05

    host填的是本机ip吗


    2023-07-05
    赞同
    回复
  • 2022-03-14

    请问哪里的数据库可以外网链接安全呢?同时连接池管理怎么弄呢?

    2022-03-14
    赞同
    回复
  • .
    .
    2022-01-11

    有没有连接SQL server的,求指导

    2022-01-11
    赞同
    回复
  • 大陈: Done is Better
    大陈: Done is Better
    2021-10-29

    很详细,小石头的课程都很专业,且很细心,有极大的可操作性和价值。


    2021-10-29
    赞同
    回复
  • 智
    2021-04-04

    这个连续访问两个表真机测试会有问题,有时候会获取到有时候会查询不到,但是模拟器和本地测试却是成功的。我怀疑真机网络延迟会造成连接阻塞 {"errorCode":-1,"errorMessage":"Async invoking task timed out after 10 seconds","statusCode":433} ,

    2021-04-04
    赞同
    回复

正在加载...

登录 后发表内容