目录

微信小程序-连接云数据库不使用云函数进行-登录注册查询包括模糊查询快速实现-亲测可用

微信小程序 连接云数据库(不使用云函数)进行 登录、注册、查询(包括模糊查询)快速实现 亲测可用

当连接MySQL的时候总是出现各种各样的小问题,可以选用微信小程序自带的云数据库

目 录

建立云数据库

注:测试号不能建立云数据库

按图中步骤来

https://i-blog.csdnimg.cn/blog_migrate/bb752da17dbe4d770adf42d4e16c3b26.png

建表

第4步中,有两种添加方式

第一种

https://i-blog.csdnimg.cn/blog_migrate/3ea2dd07556533dd68c1fdc8e746f9ac.png

第二种

https://i-blog.csdnimg.cn/blog_migrate/838d5e940c4e49874b39e78125dbfbc6.png

注意:

如果你是粘贴复制的,他会报错 非数字字符"无法使用外部字符串表示法位于第1行 。这时,在第一行的 { 后敲个回车就可以通过了。

导入MySQL中的表

导出

在SQLyog中,选中你要导出的表,右键,备份/导出—导出表数据作为

https://i-blog.csdnimg.cn/blog_migrate/6a69a54ecfc378560c856f52edbdd3e5.png

https://i-blog.csdnimg.cn/blog_migrate/bc2a498f06762502d88b02b2732aee82.png

导入

https://i-blog.csdnimg.cn/blog_migrate/7b68f40e99d41fcefccc6d5e976833c0.png

https://i-blog.csdnimg.cn/blog_migrate/5f3426cd533adb743fba0d017ff12134.png

云数据库初始化

把一下代码复制到指定位置

app.js 中

// app.js

App({

  onLaunch: function () {
    // 展示本地存储能力
    wx.cloud.init({
      traceUser: true,
      env:'cloud1-1grn69gh9be4f1c3'
    })
    var logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs)
  }
  

})

你需要用到云数据库的页面的js代码的最上面( Page({}) 的上面)

const db = wx.cloud.database()

登录注册

注册功能

下面这段代码放在你设置的注册按钮上的点击 函数

      wx.cloud.database().collection('user').add({
      //user 指的是表,替换成你自己的。add相当于sql中的insert
       data: {
       //表中的字段,替换成你自己的
        username: this.data.username,//页面input传入的值
        password: this.data.password
       },
       success(res) {
        console.log('注册成功', res)
        wx.showToast({
         title: '注册成功',
        })
        wx.navigateTo({
         url: '/pages/login/index',
        })
       },
       fail(res) {
        console.log('注册失败', res)
       }
      })

登录功能

下面这段代码放在你设置的登录按钮上的点击 函数

    wx.cloud.database().collection('user').where({
    //先是查询用户名是否存在
    username: this.data.username
    }).get({
    success(res) {
      console.log("获取数据成功", res)
      let user = res.data[0]
      console.log("user", user)
      wx.setStorage({
        data: true,
        key: 'loginOk',
      })
      if(user==undefined)
      {
        console.log('登陆失败')
        wx.showToast({
          icon: 'none',
          title: '账号或密码不正确',
        })
      }
      if (password == user.password&&username ==user.username) {
      console.log('登陆成功')
      wx.navigateTo({
        url: '/pages/user/user',
      })
      wx.showToast({
        title: '登陆成功',
      }),
      wx.switchTab({
        url: "/pages/user/user",
        success: function (e) {  
          var page = getCurrentPages().pop();  
          if (page == undefined || page == null) return;  
          page.onLoad();  
        }  
      })

      //保存用户登陆状态
      wx.setStorageSync('user', user)
      
      } else if(res.data[0]==null){
        wx.showToast({
          title: "请先注册",
        })
        wx.navigateTo({
          url: '/pages/register/register',
        })
      }
      else{
      console.log('登陆失败')
      wx.showToast({
        icon: 'none',
        title: '账号或密码不正确',
      })
      }
    },
    fail(res) {
      console.log("获取数据失败", res)
    }
    })

查询(模糊查找)

注,精确查找的话,刚刚登录里面找用户名的就是

  //获取输入的内容
  inCiju:function(e){
    this.data.ciju = e.detail.value;
},
// getGuInfo1是查找按钮的函数
getGuInfo1:function (e) {
  var that=this;
  console.log(this.data.ciju);//就在控制台检查一下传参是否正常
  db.collection("poems").where({	 	
  //poems是表名,替换成你自己的
  //利用正则进行模糊查询
  content: db.RegExp({
    regexp: this.data.ciju,//ciju是input传过来的字段,替换成自己的
    options: 's'
  })
}).get({
  success: res=>{
  	//下面这俩都是检查用的,可以删掉
    console.log(JSON.stringify(res.data))
    console.log(res.data)
 	//获取数据库的数据
    this.setData({
      gushi: JSON.stringify(res.data),
    })
    //下面是带参数跳转到另一页面,不需要可以删掉。
     const shici = JSON.stringify(res.data)
    wx.navigateTo({
       url: '../search/search?shici='+shici,
       })
     }
  })