首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP脚本可以等待来自不同Arduino/用户的所有变量更新吗?

PHP脚本可以等待来自不同Arduino/用户的所有变量更新吗?
EN

Stack Overflow用户
提问于 2017-10-17 20:07:08
回答 1查看 113关注 0票数 3

我有三个带分贝感应器的Arduino MKR1000,每隔5秒它们就会把感应值发送给一个PHP脚本,脚本会把它存入数据库。

问题是,我需要PHP脚本在将其插入数据库之前等待所有三个值都被更新。

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

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

代码语言:javascript
复制
<?php
include("dbconnect.php");

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

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

代码语言:javascript
复制
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);

在成功插入变量后,它应该将所有变量重置为null,以便可以重新填充变量。

代码语言:javascript
复制
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();
?>

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-10-17 20:30:56

你不应该为等待而烦恼。

相反,将您的DDW表更改为这样的表

代码语言:javascript
复制
--------------
|sensor|value|

一个接一个地插入你的数据

代码语言:javascript
复制
$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添加到表中。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46789754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档