如何使用php读取API数据并将其插入MYSQL

时间:2019-01-08 12:30:18

标签: php mysql

因此,我试图从API获取转化率,并获得以下数据:

https://api.exchangeratesapi.io/history?start_at=2017-01-01&end_at=2018-09-01&symbols=EUR&base=GBP

如何遍历数据并将日期和转换率插入MYSQL DB。

任何帮助将不胜感激。

我目前正站在这里:

$host="localhost";
$user="conversion";
$pass="password";
$db="areporting";
$connect= new mysqli($host,$user,$pass,$db) or die("ERROR:could not connect 
to the database!!!");


$string = file_get_contents("https://api.exchangeratesapi.io/history?start_at=2017-01-01&end_at=2018-09-01&symbols=EUR&base=GBP");
$json = json_decode($string, true);


var_dump($json);

这是我得到的数据的屏幕截图: enter image description here

2 个答案:

答案 0 :(得分:3)

您可以在json结果上使用foreach:

  <?php
        $servername = "localhost";
        $username = "username";
        $password = "password";
        $dbname = "myDB";

        // Create connection
        $conn = new mysqli($servername, $username, $password, $dbname);
        // Check connection
        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
        } 
        $string = file_get_contents("https://api.exchangeratesapi.io/history?start_at=2017-01-01&end_at=2018-09-01&symbols=EUR&base=GBP");
        $json = json_decode($string, true);


        foreach($json['rates'] as $date =>$conversion){
            $sql = "INSERT INTO Mytable (id, date, conversion)
                    VALUES ( '$date', ".$conversion['EUR'].")";

            if ($conn->query($sql) === TRUE) {
                echo "New record created successfully"."<br>";
            } else {
                echo "Error: " . $sql . "<br>" . $conn->error."<br>";
            }

        }
        $conn->close();
        ?>

答案 1 :(得分:0)

感谢所有提示,这里有我的工作解决方案:

foreach($json['rates'] as $date => $conversion){

$timestamp = strtotime($date);
$sql = "INSERT INTO m_fx_rate_temp
(`base`, `counter`, `fxRate`, `date`) VALUES ('gbp', 'eur', ".$conversion['EUR'].", Date_format(FROM_UNIXTIME($timestamp), '%Y-%m-%d'))";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully"."<br>";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error."<br>";
}

}