2016-11-05 4 views
1

Этот вопрос, возможно, уже спросили здесь, но я пытался найти не мог найти его У меня есть данные JSON, как показано нижеDecode Json массив данных и вставить в MySQL для

{"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 и вставить to 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 
+0

Можете ли вы опубликовать то, что вы пробовали до сих пор? –

ответ

2

Есть некоторые проблемы в коде PHP. Код $data = json_decode($jsondata, true); действительно преобразует ваши данные json в массив PHP. Но если вам нужно извлечь ДАННЫЕ, что вам нужно вставить в таблицу, то вам нужно сделать, как

$array_data = $data['CityInfo']; 

Сейчас этот $array_data содержит массив данных, который должен быть вставлен в tables.You может продолжать с

$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(); 
?> 
+0

Nice Explanation Kiran! Спасибо – Feroza

+0

Рад узнать :) –

Смежные вопросы