后续内容参考:php处理数据并连接数据库
https://blog.csdn.net/qwe24111/article/details/99644132
该文只介绍了php接收数据并连接数据库的一般相关操作,可作为后续php程序处理数据的参考
接收esp8266数据可以采用多种方法
方法一:tcp/ip协议,esp tcp客户端往服务器发送数据,服务器(接收并写入数据库,需要写一个服务器监听特定端口。服务器需要发送收集指令,8266采集数据并返回
方法二:mqtt协议(优势:物联网应用广泛),esp 往broker发送数据,服务器接收并存入数据库。其他语言写一个server(只需要接收客户端发送信息)接收数据,写入数据库。
方法三:http协议。发送数据给web服务器处理。
参考资料 nodemcu说明文档 网址
https://nodemcu.readthedocs.io/en/master/
8266采用http协议
先联网
再使用http.post()函数
wifi.setmode(wifi.STATIONAP)stationcfg={ssid="xxx";auto=true;
}
wifi.sta.config(stationcfg)
wifi.eventmon.register(wifi.eventmon.STA_GOT_IP, function(T)print("\n\tSTA - GOT IP".."\n\tStation IP: "..T.IP.."\n\tSubnet mask: "..T.netmask.."\n\tGateway IP: "..T.gateway) http.post('http://10.xxx.xxx.xxx/a/insert',
'Content-Type: application/json',
'{"data":"456"}',
function(code, data)if (code < 0) thenprint("HTTP request failed")elseprint(code, data) end
end)
end);
若要把变量存入body中&#xff0c;通过http.post传送出去的话&#xff0c;需要对body部分格式进行更改
indata&#61;"" --indata是string格式
-- &#39;{"data":"456"}&#39;,
&#39;{"data":"&#39;..indata..&#39;"}&#39;,
PHP接收JSON格式的数据
PHP默认识别的数据类型是application/x-www.form-urlencoded标准的数据类型。因此&#xff0c;对型如text/xml 或者 soap 或者 application/octet-stream 和application/json格式之类的内容无法解析&#xff0c;如果用$_POST数组来接收就会失败&#xff01;
此时可以使用$GLOBALS[‘HTTP_RAW_POST_DATA’] 或 file_get_contents(‘php://input’) 来获取提交的数据
对于接收到的数据&#xff0c;用json_decode() 对JSON数据进行解码&#xff0c;转换为PHP变量&#xff0c;如果要数据类型的数据要加一个参数true
public function insert(){$json&#61;(file_get_contents(&#39;php://input&#39;)); $a&#61;json_decode($json,ture);print_r($a);}
结果
图片中可见有返回数据&#xff0c;故发送成功
剩下的工作便是在php中
连接数据库
接收到数据后并存入数据库中即可。。