php - PHP 脚本可以等待所有变量从不同的 Arduino 的/用户更新吗?

标签 php mysql arduino

我有三个Arduino MKR1000附有分贝传感器的。他们每 5 秒将传感器值发送到 PHP 脚本,该脚本将其放入数据库。

问题是我需要 PHP 脚本等待所有三个值更新后再将其插入数据库。

我如何存储最先更新的两个 Arduino 的值,当最后一个 Arduino 发送它的值时,它将所有三个值插入到数据库中?

我对这段代码的问题是,当更新一个变量时,其他变量重置为 null。

<?php
include("dbconnect.php");

$db01 = $_GET['db01'];      //Decibel-sensor 1
$db02 = $_GET['db02'];      //Decibel-sensor 2
$db03 = $_GET['db03'];      //Decibel-sensor 3

我试图从这部分返回脚本,直到设置了所有值,但是当一个变量被更改时,其他变量被设置为空。

if ($db01 == null || $db02 == null || $db03 == null){
        return;
}

$sql = "INSERT INTO DDW (db_01, db_02, db_03)
        VALUES ('$db01', '$db02', '$db03');";

mysql_query($sql);

成功插入变量后,它应该将所有变量重置为空,这样它就可以重新开始填充变量。

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
    $db01 = null;
    $db02 = null;
    $db03 = null;
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

谢谢!

最佳答案

你不应该为等待而烦恼。

而是将您的 DDW 表更改为类似的内容

--------------
|sensor|value|

然后一条一条插入你的数据

$sensor = $_GET['sensor'];
$value  = $_GET['value'];
$db = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'dbuser', 'dbpass');

$stmt = $dbh->prepare("INSERT INTO DDW (sensor, value) VALUES (:sensor, :value)");
$stmt->bindParam(':sensor', $sensor);
$stmt->bindParam(':value', $value);
$stmt->execute();

如果需要,您还可以将插入时间和ID添加到表中。

并使用有意义的变量名和表名,如果你想回到这个项目,你会感谢自己。

关于php - PHP 脚本可以等待所有变量从不同的 Arduino 的/用户更新吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46789754/

相关文章:

php - 我如何比较 andWhere 方法中的两列?

php - mysql order by specific column in random order with seed

mysql - 按具体编号及之后查询顺序,按升序排序

Arduino陷入无限循环

c++ - 有没有更简洁的方法来做到这一点? C++ 中频

php - FPDF - 添加谷歌网络字体

php - 全新安装 symfony 时出错

php - ckeditor 存储数据 php

mysql - 在同一个表中一次又一次插入相同的记录

c++ - Arduino UNO + SIM800L - 向服务器发送数据