在php中检索JSON发布数据并将其插入到mySQL数据库中

时间:2019-01-30 00:18:56

标签: php mysql json post

我正在尝试通过POST从Micropython控制器将一些Json格式的数据发送到PHP页面,然后再发送到mySQL数据库。我遇到的问题是PHP代码没有从Json数据中读取值,因此没有将其插入数据库中。

目前,似乎数据已成功以正确的格式发送到PHP页面。这是下面的代码:

将数据发送到php页面的Python代码:

data = '{"DeviceName": 1, "Humidity": %.2f, "Temperature": %.2f }'%(hum,temp)
headers = {'content-type': 'application/json'}
print(data)
res = urequests.post('http://192.168.1.187/insert.php', json=data, headers=headers)
print(res)

这是要发送的JSON字符串:

{"DeviceName": 1, "Humidity": 36.88, "Temperature": 27.99 }

PHP代码:

$server = "localhost";
$username = "admin";
$password = "passw";
$db = "test";

$dbCon = new mysqli($server, $username, $password, $db) or die("Unable to Connect");

$response = array();
$res=array();

$jsonRaw = file_get_contents('php://input');
$json = json_decode($jsonRaw);

if($json!=null){

    $temperature = $json->Temperature;
    $device = $json->DeviceName;

    $sql = "insert into hostdata (HostID, DandT, Temp) values ('$device', now(), '$temperature')";

    if(mysqli_query($dbCon, $sql)){
        $svrResp["code"] = "1";
        $svrResp["message"] = "Sucessfully Connected";

        echo json_encode($response);
    }else{
        $svrResp["code"] = "2";
        $svrResp["message"] = mysqli_error($dbCon);
        echo json_encode($response);
    }
}else{
    echo "JSON data error";

}
mysqli_close($dbCon);



 ?>

这应该将deviceName(实际上是一个数字)和温度值插入sql语句,并更新数据库。但是,它会触发sql插入语句,插入时仅HostID和Temperature值均为0。我想念什么吗?

任何帮助将不胜感激!

0 个答案:

没有答案