sim800C Отправить данные на сервер и сохранить в базе данных
Я новичок, извините за мои ошибки. Я пытаюсь отправить значение датчика температуры на мой сервер с помощью метода post модулем Simcom sim800C. в моей клиентской части я использую эти команды.
AT+SAPBR=3,1,"CONTYPE","GPRS"
AT+SAPBR=3,1,"APN","mtnirancell"
AT+SAPBR=1,1
AT+SAPBR=2,1
AT+HTTPINIT
AT+HTTPPARA="CID",1
AT+HTTPPARA="URL","http://www.mysiteaddress.ir"
AT+HTTPPARA="CONTENT","application/json"
AT+HTTPDATA=20,10000 //data is 20 Bytes,maximum latency time is 10000 ms.
// Wait a few moments to Receive "DOWNLOAD" from sim800c module
{"data":"my sensor value"} // The data I want to send
AT+HTTPACTION=1
после этой команды ответ модуля
OK
+HTTPACTION: 1,200,86
и для сервера PHP я использую следующие коды:
<?php
require_once 'db.php'; // loading Database Class file
$db = Db::getInstance(); // Create an instance of the database
$records = $_POST;
$records = json_decode($records);
foreach ($records as $record){
$db->query("INSERT INTO `note` (`id`, `data`) VALUES (NULL,'$record')");
}
В конце концов, ничего не хранится в базе данных.
1 ответ
Моя ошибка была в кодах PHP. Чтобы получить значения POST, я добавил следующие строки.
$request_body = "";
$request_body = file_get_contents('php://input');
$record = urldecode($request_body);
$db->query("INSERT INTO `note` (`id`, `data`) VALUES (NULL, '$record')");
больше информации, передавая данные json через тело http