ich versuche JSON MYSQL Datenbank einzufügen, i erfolgreich jedes Element von json Zugriff haben, aber mein Code ist nur der letzte Datensatz von json einfügen, hier ist mein PHP-Code:json mysql nur letzte Datensatz eingefügt
<?php
$link = mysqli_connect("localhost", "root", "", "Store");
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
$filename = "employee_data.json";
$json = file_get_contents($filename);
$obj = json_decode($json,true);
foreach($obj as $item) {
$sql = "INSERT INTO product (barcodeNumber,name,catName) VALUES ('".$item['name']."', '".$item['designation']."', '".$item['gender']."') ";
echo $item['name'];
}
if(mysqli_query($link, $sql)){
echo "Records added successfully.";
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
mysqli_close($link);
?>
Wie Sie in meinem Code sehen, kann ich jeden Namen von Json drucken, aber es ist nur die letzte einfügen!
Und die JSON-Datei employee_data.json:
{
"name": "Ted Baer",
"gender": "Male",
"designation": "Conservation worker"
}
Jede Hilfe:
[
{
"name": "Michael Bruce",
"gender": "Male",
"designation": "System Architect"
},
{
"name": "Jennifer Winters",
"gender": "Female",
"designation": "Senior Programmer"
},
{
"name": "Donna Fox",
"gender": "Female",
"designation": "Office Manager"
},
{
"name": "Howard Hatfield",
"gender": "Male",
"designation": "Customer Support"
},
{
"name": "Kevin Sanders",
"gender": "Male",
"designation": "Food service worker"
},
{
"name": "Fay K. Whitney",
"gender": "Female",
"designation": "Bookbinder"
},
{
"name": "Heather Hernandez",
"gender": "Female",
"designation": "Corporate recruiter"
},
{
"name": "Rhonda Okelley",
"gender": "Female",
"designation": "Image designer"
},
{
"name": "Sandy Jacobsen",
"gender": "Male",
"designation": "Publicity agent"
},
{
"name": "Marisa Williams",
"gender": "Female",
"designation": "Molder"
},
{
"name": "Neil Simmons",
"gender": "Male",
"designation": "Engine and other machine assembler"
},
{
"name": "Raymond Lara",
"gender": "Male",
"designation": "Clerical assistant"
},
{
"name": "William Carpenter",
"gender": "Male",
"designation": "Broker"
},
{
"name": "Ted Baer",
"gender": "Male",
"designation": "Conservation worker"
}
]
es nur der letzte Datensatz einfügt?
Sie rufen 'mysqli_query (..)' außerhalb der Schleife . Somit wird nur die letzte Abfrage ausgeführt. BTW: Man sieht das viel einfacher, wenn Sie Ihren Code richtig formatieren. –
Werfen Sie einen Blick auf vorbereitete Anweisungen für die Leistung (mysql analysieren die SQL-Anweisung nur einmal) und Sicherheit ("sql injection", stellen Sie sich ein "O'Connor") – clemens321