将已解析的json数据插入MySQL表

时间:2019-01-23 21:11:33

标签: php mysql json

我已经解析了多维数组。我需要做的最后一件事:将数据插入mysql表,另一件事是我想知道如何将多维数组实际插入表,我应该使用第二个$ sql查询和另一个表吗? 在下面的示例中,我仅使用了三个变量“ id,main,icon”,当然需要打包它们。感谢您的帮助。谢谢     

 $jsonIterator = new RecursiveIteratorIterator(
  new RecursiveArrayIterator(json_decode($data, TRUE)),
  RecursiveIteratorIterator::SELF_FIRST);
  foreach($jsonIterator as $key=>$value)
   { 
   $query = "INSERT INTO json1 (id, main, icon) VALUES (
     '".$key["coord"]."', 
     '".$key["lon"]."', 
     '".$key["lat"]."'); "; 
   if(is_array($value))
     { echo "$key:\n"; }
   else
     { echo "$key => $value\n"; } 
}

这是我的json文件

{
    "coord": {
        "lon": 22,
        "lat": 50.04
    },
    "weather": [{
        "id": 804,
        "main": "Clouds",
        "description": "overcast clouds",
        "icon": "04n"
    }],
    "base": "stations",
    "main": {
        "temp": 267.15,
        "pressure": 1007,
        "humidity": 79,
        "temp_min": 267.15,
        "temp_max": 267.15
    },
    "visibility": 10000,
    "wind": {
        "speed": 4.6,
        "deg": 50
    },
    "clouds": {
        "all": 90
    },
    "dt": 1548271800,
    "sys": {
        "type": 1,
        "id": 1711,
        "message": 0.0097,
        "country": "UK",
        "sunrise": 1548224204,
        "sunset": 1548256302
    },
    "id": 759734,
    "name": "London",
    "cod": 200
}

1 个答案:

答案 0 :(得分:0)

您似乎正在使这项工作变得比原本要困难得多。该JSON文件中没有数组,它只是一个对象,因此没有要迭代的内容。您也不需要递归迭代器。

$array = json_decode($data, true);
$id = $array['id'];
$lon = $array['coord']['lon'];
$lat = $array['coord']['lat'];
$query = "INSERT INTO json1 (id, main, icon) VALUES ($id, $lon, $lat)";