IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 基于EMQX云服务器的环境调节系统(微信小程序连接MySQL篇) -> 正文阅读

[移动开发]基于EMQX云服务器的环境调节系统(微信小程序连接MySQL篇)

1、宝塔上创建mysql数据库

选择创建网站,记住刚刚的根目录,后续我们会创建接口文件放置在那里

在这里插入图片描述

然后点击数据库

在这里插入图片描述

这里我用的是这个good数据库,点击管理即可使用phpmyadmin,我在一开始搭建服务器的时候就安装好phpmyadmin插件了。然后创建数据表格
在这里插入图片描述

选择结构,创建对应的数据名,id选择自增,这样方便我们查看表格

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、连接mysql数据库

mysql我也是个半吊子,我也是查看菜鸟教程然后一步一步调试才成功的,不单单有说有用指令连接数据,也有用php连接数据库

在这里插入图片描述

在这里插入图片描述

<?php
$servername = "localhost:3306"; //数据库地址
$username=$_GET['name'];     //获取外来数据库名   name要与微信小程序那个相对应
$password=$_GET['password'];  //数据库密码
$database=$_GET['database'];   //数据库名
$temp=$_GET['temp'];    //对应的数据库表格名
$humi=$_GET['humi'];
$led=$_GET['led'];
$feng=$_GET['feng'];
$guang=$_GET['guang'];
$doji=$_GET['doji'];
//连接数据库

$conn = mysqli_connect($servername, $username, $password);
if(! $conn )
{
  die('连接失败: ' . mysqli_error($conn));
}
echo '连接成功';
//这里是sql语句,主要改这里
$sql = "INSERT INTO shuj ".
        "(temp,humi,led,feng,guang,doji) ".
        "VALUES ".
        "('$temp','$humi' ,'$led','$feng','$guang','$doji')"; 

mysqli_select_db( $conn, $database );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
  die('无法插入数据: ' . mysqli_error($conn));
}
echo "数据插入成功\n";
mysqli_close($conn);
?>

如果不知道php语句怎么写,这里也可以使用phpmyadmin通过的sql转换php代码

在这里插入图片描述

这个插入和连接数据库的php文件放置在刚刚我们创建的根目录
在这里插入图片描述

3、微信小程序连接数据库和插入数据

getCurrentPages是获取当前页面数据的,80是网页默认端口,记得开放端口,把这些相关数据发送给我们刚刚的php文件,这样我们就可以把数据传输到数据库了。

我是把这个函数放在onLoad函数上定时运行的

//传数据到mysql
 insert:function(){
  var sele =getCurrentPages();
  wx.request({
      url: 'http://********:80/insert.php',  //*号是刚刚创建的网址域名
      data:{ 
          name:'****',  //数据库名
          password:'****',  //数据库密码
          database:'****',  //数据库名
          temp:sele[sele.length-1].data.temp,
          humi:sele[sele.length-1].data.humi,
          led:sele[sele.length-1].data.led,
          feng:sele[sele.length-1].data.feng,
          guang:sele[sele.length-1].data.guang,
          doji:sele[sele.length-1].data.Air,
      },
      success: function(res)
      {
           console.log(res.data)
      },
    })

},
 onLoad: function (options) {
    var that=this
    setInterval(function(){
      that.pduan();
      that.insert();
    },8000
    )  
  },

在这里插入图片描述

4、微信小程序获取数据库最新多条数据

菜鸟教程这里提供了三种方法获取数据,我是第三种上的基础改进的,因为我获取的是多条数据,后面把它们添加进去成数组,再利用json_encode把数值转换成json格式

在这里插入图片描述

<?php
$servername = "localhost:3306";
$username=$_GET['name'];  
$password=$_GET['password'];
$database=$_GET['database'];
$conn = mysqli_connect($servername, $username, $password);
if(! $conn )
{
    die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
 
//$sql = "SELECT $user, $pass FROM test";
 $sql = "SELECT * FROM `shuj`\n". " ORDER BY `id` DESC limit 8";
mysqli_select_db( $conn, $database );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
    die('无法读取数据: ' . mysqli_error($conn));
}
class emp{
    public $id = "";
    public $temp= "";
    public $humi = "";
    public $led = "";
    public $feng= "";
    public $guang = "";
    public $doji= "";

    
}

while($row = mysqli_fetch_array($retval, MYSQLI_NUM))
{ 
    
        //$a =array();
        //$data=array('id'=>$row[0],$user =>$row[1],$pass=>$row[2]);
        // array_push($a,$data);
        //echo json_encode($a);
        $e = new Emp();
        $e->id = $row[0];
        $e->temp = $row[1];
        $e->humi = $row[2];
        $e->led =$row[3];
        $e->feng= $row[4];
        $e->guang= $row[5];
        $e ->doji=$row[6];
        $data[] =$e;
        
}
echo json_encode($data);
// 释放内存
mysqli_free_result($retval);
mysqli_close($conn);
?>

微信小程序只需要发送请求就可以,这里难就难在刚刚的php数据转换格式

insert:function(){
    wx.request({
        url: 'http://*******:80/insert.php', //服务器ip
        data:{ 
            name:'*****', //数据库名
            password:'****', //数据库密码
            database:'****', //数据库名
            username:this.data.username,
            pass:this.data.pass,
        },
        success: function(res)
        {
             console.log(res.data)
        },
      })

5、数据可视化

这里我是参考了另一个博主的博客做的,简单易懂,我这里稍微改进了一下,只显示日期,没有显示年份。

https://blog.csdn.net/qq_52827563/article/details/121726546?

只需要把原来getOption函数里面的requset换成我这个请求接口就可以

  getOption:function(){
    var _this = this
    wx.request({
      
      url: 'http://********:80/select.php',
      data:{ 
          name:'****',
          password:'****',
          database:'****',
      },
      success:(res)=>{
       _this.setData({
          data:res.data
       }) 
      var i
      var guang=[];
      var date =[];
      for(i=0;i<=res.data.length-1;i++){
        guang[i]=res.data[i].guang
        date[i]=res.data[i].id
      }

       _this.init_chart(date,guang)
      },
    })
  
  }

在这里插入图片描述
在这里插入图片描述

写到这里差不多全部完工了,ESP32C3+EMQX云服务器+微信小程序+mysql画下句号

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 12:09:06  更:2022-10-31 12:10:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 20:52:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码