解码 Json 数据数组并插入到 mysql
Posted
技术标签:
【中文标题】解码 Json 数据数组并插入到 mysql【英文标题】:Decode Json data Array and insert in to mysql 【发布时间】:2017-03-19 10:39:09 【问题描述】:这个问题可能已经在这里问过了,但我试过搜索找不到它 我有如下 Json 数据
"CityInfo":["CityCode":"5599","Name":"DRUSKININKAI","CityCode":"2003","Name":"KAUNAS","CityCode":"2573","Name":"KLAIPEDA","CityCode":"1692","Name":"VILNIUS"],"StartTime":"2016-11-05 07:20:34","EndTime":"2016-11-05 07:20:34"
我尝试使用 php 提取这些并插入到 mysql db。但它不适合我,因为我是编码初学者,请帮助解决这个问题
下面我试过了
$jsondata = file_get_contents($jsonFile);
$data = json_decode($jsondata, true);
echo $data['Name'];
echo $data['CityCode'];
$db->save($data, "tableName"); // i found a php app to insert json to db
【问题讨论】:
你能发布到目前为止你尝试过的东西吗? 【参考方案1】:您的 php 代码中存在一些问题。代码$data = json_decode($jsondata, true);
确实将您的 json 数据转换为 PHP 数组。但是,如果您需要提取需要插入到表中的数据,那么您需要这样做
$array_data = $data['CityInfo'];
现在$array_data
包含需要插入到表中的数据数组。您可以继续
$db->save($array_data, "tableName");
或者您可以使用 PHP MySQLi
和 forEach
循环手动插入每一行
$conn = new mysqli($servername, $username, $password, $dbname);
foreach ($array_data as $row)
$sql = "INSERT INTO cityinfo (CityCode, Name) VALUES ('" . $row["CityCode"] . "', '" . $row["Name"] . "')";
$conn->query($sql);
完整示例
<?php
$jsonFile="CityInfo.json";
$jsondata = file_get_contents($jsonFile);
$data = json_decode($jsondata, true);
$array_data = $data['CityInfo'];
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "yourDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error)
die("Connection failed: " . $conn->connect_error);
foreach ($array_data as $row)
$sql = "INSERT INTO cityinfo (CityCode, Name) VALUES ('" . $row["CityCode"] . "', '" . $row["Name"] . "')";
$conn->query($sql);
$conn->close();
?>
【讨论】:
很好的解释基兰!谢谢 很高兴知道:) 如何将其更改为 SELECT 而不是 INSERT?以上是关于解码 Json 数据数组并插入到 mysql的主要内容,如果未能解决你的问题,请参考以下文章