I am trying to map a collection of JSON files into a database but my isset check is not working in my PHP :
<?php
$con = mysqli_connect("localhost", "root", "", "json_map");
$response = array();
$res = array();
$result = '';
foreach(glob('C:\xampp\htdocs\laravel\awsconfig\app\views\*.json') as $filename)
{
$json = file_get_contents($filename);
if ($json != null)
{
$decoded = json_decode($json, true);
// $decode= var_dump($decoded);
// $ss=$decode["array"];
// echo $decoded['number'];
if (is_array($decoded["configurationItems"]))
{
foreach($decoded["configurationItems"] as $configurationItems)
// for($i=0;$i>sizeof($decoded["configurationItems"]);$i++)
{
$cfi = isset($configurationItems["configuration"]) ? $configurationItems["configuration"] : '';
if (isset($cfi["instanceId"]) && isset($cfi["imageId"]) && isset($cfi["privateDnsName"]) && isset($cfi["publicDnsName"]) && isset($cfi["keyName"]) && isset($cfi["stateTransitionReason"]) && isset($cfi["amiLaunchIndex"]) && isset($cfi["instanceType"]) && isset($cfi["launchTime"]) && isset($cfi["kernelId"]) && isset($cfi["subnetId"]) && isset($cfi["vpcId"]) && isset($cfi["privateIpAddress"]) && isset($cfi["architecture"]) && isset($cfi["rootDeviceType"]) && isset($cfi["rootDeviceName"]) && isset($cfi["virtualizationType"]) && isset($cfi["clientToken"]) && isset($cfi["sourceDestCheck"]) && isset($cfi["hypervisor"]) && isset($cfi["ebsOptimized"]))
{
$instanceId = $configurationItems["configuration"]["instanceId"];
echo "instanceId:", $instanceId, "<br />";
$imageId = $configurationItems["configuration"]["imageId"];
echo "imageId:", $imageId, "<br />";
$privateDnsName = $configurationItems["configuration"]["privateDnsName"];
echo "privateDnsName:", $privateDnsName, "<br />";
$publicDnsName = $configurationItems["configuration"]["publicDnsName"];
echo "publicDnsName:", $publicDnsName, "<br />";
$keyName = $configurationItems["configuration"]["keyName"];
echo "keyName:", $keyName, "<br />";
$stateTransitionReason = $configurationItems["configuration"]["stateTransitionReason"];
echo "stateTransitionReason:", $stateTransitionReason, "<br />";
$amiLaunchIndex = $configurationItems["configuration"]["amiLaunchIndex"];
echo "amiLaunchIndex:", $amiLaunchIndex, "<br />";
$instanceType = $configurationItems["configuration"]["instanceType"];
echo "instanceType:", $instanceType, "<br />";
$launchTime = $configurationItems["configuration"]["launchTime"];
echo "launchTime:", $launchTime, "<br />";
$kernelId = $configurationItems["configuration"]["kernelId"];
echo "kernelId:", $kernelId, "<br />";
$subnetId = $configurationItems["configuration"]["subnetId"];
echo "subnetId:", $subnetId, "<br />";
$vpcId = $configurationItems["configuration"]["vpcId"];
echo "vpcId:", $vpcId, "<br />";
$privateIpAddress = $configurationItems["configuration"]["privateIpAddress"];
echo "privateIpAddress:", $privateIpAddress, "<br />";
$architecture = $configurationItems["configuration"]["architecture"];
echo "architecture:", $architecture, "<br />";
$rootDeviceType = $configurationItems["configuration"]["rootDeviceType"];
echo "rootDeviceType:", $rootDeviceType, "<br />";
$rootDeviceName = $configurationItems["configuration"]["rootDeviceName"];
echo "rootDeviceName:", $rootDeviceName, "<br />";
$virtualizationType = $configurationItems["configuration"]["virtualizationType"];
echo "virtualizationType:", $virtualizationType, "<br />";
$clientToken = $configurationItems["configuration"]["clientToken"];
echo "clientToken:", $clientToken, "<br />";
$sourceDestCheck = $configurationItems["configuration"]["sourceDestCheck"];
echo "sourceDestCheck:", $sourceDestCheck, "<br />";
$hypervisor = $configurationItems["configuration"]["hypervisor"];
echo "hypervisor:", $hypervisor, "<br />";
$ebsOptimized = $configurationItems["configuration"]["ebsOptimized"];
echo "ebsOptimized:", $ebsOptimized, "<br />";
$result = mysqli_query($con, "INSERT INTO configuration(instance_id, image_id, private_dns_name, public_dns_name, key_name, state_transition_reason, ami_launch_index, instance_type, launch_time, kernel_id, subnet_id, vpc_id, private_ip_address,architecture, root_device_type, root_device_name, virtualisation_type, client_token, source_dest_check, hypervisor, ebs_optimised)
VALUES('$instanceId','$imageId', '$privateDnsName' , '$publicDnsName', '$keyName', '$stateTransitionReason', '$amiLaunchIndex', '$instanceType', '$launchTime', '$kernelId', '$subnetId', '$vpcId', '$privateIpAddress', '$architecture', '$rootDeviceType', '$rootDeviceName', '$virtualizationType', '$clientToken', '$sourceDestCheck', '$hypervisor', '$ebsOptimized')") or die("Insert Failed " . ((is_object($con)) ? mysqli_error($con) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)));;
} // check if row inserted or not
if ($result)
{
// successfully inserted into database
$response["code"] = 1;
$response["message"] = "successfully updated config table ";
// echoing JSON response
echo json_encode($response);
}
else
{
// failed to insert row
$response["code"] = 2;
$response["message"] = "Oops! An error occurred.";
// echoing JSON response
echo json_encode($response);
}
}
}
}
}
?>
when I use
$cfi = isset($configurationItems["configuration"]) ? $configurationItems["configuration"] : '';
I get oops an error occured no explanation of error
when I use
$cfi = $configurationItems ["configuration"];
I get as above plus undefined index configuration (the error)