Почему скрипт curl начинает извлекать избыточные значения при использовании запроса INSERT - PullRequest
0 голосов
/ 23 октября 2018

У меня есть скрипт curl, который извлекает данные json с сервера.Когда я сохраняю данные в файл, он работает нормально и извлекает данные только при наличии новых значений.

Но если я вставлю запрос INSERT для сохранения значений в базе данных, он начнет извлекать избыточные значения в цикле.Как будто новые данные доступны каждые 2 минуты, а когда я сохраняю данные в файл, каждые 2 минуты они получают только новые данные.Но я заменяю запрос кодом вставки данных файла, он начинает зацикливаться и извлекать лишние данные примерно каждые 5 секунд.

Как я могу исправить скрипт, чтобы он выбирал данные, когда доступны новые версии.Как это происходит, когда я сохраняю данные в файл.

Вот мой код:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="refresh" content="300">
    <title>Weather Data</title>
    <meta charset="utf-8">


</head>
<body> 

    <h2>Connect.php</h2>


              <div>
                    <?php

                        require("Connection.php");

                        $curl = curl_init();

                        curl_setopt_array($curl, array(
                        CURLOPT_URL => "https://cors.io/?http://api.xxxxx.com/live/xxxxxxxxxx=m/s",
                        CURLOPT_RETURNTRANSFER => true,
                        CURLOPT_ENCODING => "",
                        CURLOPT_MAXREDIRS => 10,
                        //CURLOPT_TIMEOUT => 30,
                        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                        CURLOPT_CUSTOMREQUEST => "GET",
                        CURLOPT_HTTPHEADER => array(
                        "Cache-Control: no-cache"
                        ),
                        ));

                        $response = curl_exec($curl);
                        $Wdata = json_decode($response, true);

                        $tem = $Wdata["temperature"];
                        $tem2 = $Wdata["2nd_temp"];
                        $hum = $Wdata["humidity"];
                        $tim = $Wdata["dateTime"];

                        $err = curl_error($curl);

                        curl_close($curl);

                        if ($err) {
                                    echo "cURL Error #:" . $err;
                                    } else {

                        echo $response;

                        echo "<br>";
                        echo "temp1:".$tem;
                        echo "<br>";
                        echo "humidity:".$hum;
                        echo "<br>";
                        echo "time:".$tim;
                        echo "<br>";

                        if ( $fl = fopen('weatherData.json','a')) 
                        { fwrite($fl,"\"Weather Data\": { \"Time\" : \"". $tim . "\" ,"."\"Humidity\" : \"". $hum . "\"}\n" ); 

                         //echo $_id.';'.$_time;
                         fclose($fl); }    

                    // Here code to save $response into database; When I un-comment it, the script starts fetching redundant data in a loop  
                  /* 
                  try{

                        $sql = "INSERT INTO weatherdata (datetime, temperature, humidity)
                                VALUES ('".$tim."','".$tem."','".$hum."')";
                        echo "<meta http-equiv='refresh' content='0'>";

                        ($conn->query($sql)); 

                            //$conn = null;
                        }
                        catch(PDOException $e)
                        {
                        echo $e->getMessage();
                        }
                    */


                        }

                    ?>

                </div>


    </body>
</html>           
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...