Как сделать ответ сценария php-сервера с некоторыми данными из базы данных на запрос Python http - PullRequest
1 голос
/ 28 мая 2019

У меня есть устройство, которое отправляет запрос Python http на сервер. Я хочу сделать скрипт ответа php на стороне сервера, который собирает некоторые данные из базы данных и отправляет обратно на устройство в виде json. Я сделал запрос Python http. скрипт содержит json-сообщение (информацию об устройстве), как заставить php-сервер отвечать данными из базы данных (он должен идентифицировать устройство по http-запросу, содержащему IP). Мне нужно отправить некоторые параметры конфигурации (MaximumCurrent, MaximumVoltage), они находятся в базе данных (configDB) с именем таблицы (Parameters) со столбцами deviceIP, MaximumCurrent, MaximumVoltage. Какие-либо предложения. (Я знаю php, но не знаю, как заставить его запускаться автоматически на основе http-запроса. Потому что я планирую отправить больше http-запроса. Поэтому php-скрипт должен отвечать на основании разных запросов)

import requests
import urllib3
import json
import os
import time
import sys

#http Reques

url = 'http://someurl_to_server'
headers = {'Content-type': 'application/json', 'Accept': 'application/json'}

while True:    
    postMessage = '{"Info": {"deviceIP": {"IP" :12345}}}'    
    response = requests.post(url, json=postMessage, headers=headers)   

    try:      
        decodedresponse = json.loads(response.text)

    except(ValueError, KeyError, TypeError):       
        print("JSON Error")
~~~

1 Ответ

2 голосов
/ 28 мая 2019

Очень простой вариант:

<?php 
if(!empty($_POST['json'])){
    $link = mysqli_connect("localhost", "my_user", "my_password", "my_db");

    if (!$link) {
        echo "Error: Unable to connect to MySQL." . PHP_EOL;
        echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
        echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
        exit;
    }

    if (mysqli_query($link, "INSERT INTO your_table('your_field') VALUES('".json_decode($_POST['json'])."')") {
        echo json_encode("Insert successfully.\n");
    }
    else{
        echo json_encode($_POST);
    }
    mysqli_close($link);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...