Я пытаюсь ввести файл JSON в базу данных mySQL с помощью Php, но у меня не получается это сделать. Это мой json файл
{
"recordcount": "2",
"hoststatus": [
{
"@attributes": {
"id": "18683"
},
"instance_id": "1",
"host_id": "101",
"name": "www.chaoticmoon.com",
"display_name": "www.chaoticmoon.com",
"address": "www.chaoticmoon.com",
"alias": {},
"status_update_time": "2020-05-06 04:40:04",
"status_text": "check_http: Invalid hostname/address - www.chaoticmoon.com",
"status_text_long": {},
"current_state": "1",
"icon_image": "www_server.png",
"icon_image_alt": {},
"performance_data": {},
"should_be_scheduled": "1",
"check_type": "0",
"last_state_change": "2019-06-06 12:24:40",
},
{
"@attributes": {
"id": "18682"
},
"instance_id": "1",
"host_id": "188",
"name": "www.acme.com",
"display_name": "www.acme.com",
"address": "216.27.178.28",
"alias": {},
"status_update_time": "2020-05-06 04:37:07",
"status_text": "CRITICAL - 216.27.178.28: rta nan, lost 100%",
"status_text_long": {},
"current_state": "1",
"icon_image": "server.png",
"icon_image_alt": {},
"performance_data": "rta=0.000ms;3000.000;5000.000;0; pl=100%;80;100;; rtmax=0.000ms;;;; rtmin=0.000ms;;;;",
"should_be_scheduled": "1",
"check_type": "0",
"last_state_change": "2018-07-02 11:38:36",
}
]
}
Мой код следующий, но у меня возникают сбои, как их исправить?
<?php
require 'conexion.php';
$HostStatus = file_get_contents('../hostNAGIOS.json');
$contenido = json_decode($HostStatus,true);
$delete = "DELETE FROM nagioshost";
$ope = mysqli_query($conectar,$delete);
foreach($contenido as $row){
$hostID = $row['hoststatus']['host_id'];
$hostName = $row['hoststatus']['name'];
$state = $row['hoststatus']['current_state'];
$time = $row['hoststatus']['last_state_change'];
$insertar = "INSERT INTO nagioshost(id,host_name,status,last_state_change) VALUES('$hostID', '$hostName', '$state', '$time')";
$query = mysqli_query($conectar,$insertar);
if ($query) {
echo "DATOS METIDOS";
} else {
echo "ERROR";
}
}
mysqli_close($conectar);
?>
Это результат:
Warning: Illegal string offset 'hoststatus' in C:\xampp\htdocs\proyectoTFG\BBDD\jsonConNAGIOS.php on line 18
Warning: Illegal string offset 'host_id' in C:\xampp\htdocs\proyectoTFG\BBDD\jsonConNAGIOS.php on line 18
Warning: Illegal string offset 'hoststatus' in C:\xampp\htdocs\proyectoTFG\BBDD\jsonConNAGIOS.php on line 19
Warning: Illegal string offset 'name' in C:\xampp\htdocs\proyectoTFG\BBDD\jsonConNAGIOS.php on line 19
Warning: Illegal string offset 'hoststatus' in C:\xampp\htdocs\proyectoTFG\BBDD\jsonConNAGIOS.php on line 20
Warning: Illegal string offset 'current_state' in C:\xampp\htdocs\proyectoTFG\BBDD\jsonConNAGIOS.php on line 20
Warning: Illegal string offset 'hoststatus' in C:\xampp\htdocs\proyectoTFG\BBDD\jsonConNAGIOS.php on line 21
Warning: Illegal string offset 'last_state_change' in C:\xampp\htdocs\proyectoTFG\BBDD\jsonConNAGIOS.php on line 21
DATOS METIDOS
Notice: Undefined index: hoststatus in C:\xampp\htdocs\proyectoTFG\BBDD\jsonConNAGIOS.php on line 18
Notice: Undefined index: hoststatus in C:\xampp\htdocs\proyectoTFG\BBDD\jsonConNAGIOS.php on line 19
Notice: Undefined index: hoststatus in C:\xampp\htdocs\proyectoTFG\BBDD\jsonConNAGIOS.php on line 20
Notice: Undefined index: hoststatus in C:\xampp\htdocs\proyectoTFG\BBDD\jsonConNAGIOS.php on line 21
DATOS METIDOS