Ich muss ein Javascript-Objekt mit PHP in eine neue MySQL-Tabelle einfügen. Mein Objekt hat folgende Form:
{
rowA:[A1,A2,A3],
rowB:[B1,B2,B3],
rowC:[C1,C2,C3],
}
Ich habe auch ein Array von Spaltennamen:
$columns = array("col1","col2","col3");
Ich muss diese Daten verwenden, um eine MySQL-Tabelle im folgenden Format zu erstellen und zu füllen:
col1 col2 col3
rowA A1 A2 A3
rowB B1 B2 B3
rowC C1 C2 C3
Ich kann auf meinen Server zugreifen und eine Tabelle erstellen, bin aber noch nicht sicher, wie er mit JSON umgehen soll:
$str = file_get_contents("barchartData/US-HI.json");
$json = json_decode($str, true);
$conn = new mysqli($servername, $username, $password, $dbname);
$sql = "CREATE TABLE testTable (
// not sure how to specify column, row, and cell values from the JSON...
)";
Ich bin relativ neu in PHP und konnte keinen Code in PHP zum Laufen bringen, der die JSON-Schlüssel liest und sie als MySQL-Zeilenwerte einstellt.
Antworten:
2 für die Antwort № 1Wie im vorherigen Kommentar erwähnt, empfehle ich die Aufteilung des Problems. Die Tabellenerstellung sollte kein Problem sein, da die Werte nicht aus der JSON-Datei stammen.
Beginnen wir also mit der Überprüfung Ihrer JSON-Datei. Sie können dafür ein Online-Tool verwenden. Sehen Sie sich den Code an, den Sie neben Ihrem aktuellen Skript ausführen können. Es ist nicht die eleganteste Lösung, aber ich denke, Sie werden die Lösung am besten verstehen.
<?php
echo "<pre>"; // For testing purposes.
// Convert the array to comma separated values as is
// required by the MySQL insert statement.
$fields = array("col1","col2","col3");
$imploded_fields = implode(",", $fields);
$json = "{"rowA":["A1","A2","A3"], "rowB":["B1","B2","B3"], "rowC":["C1","C2","C3"]}";
$decoded = json_decode($json);
foreach ($decoded as $d) {
$values = implode(",", $d);
$statement = "INSERT INTO `table` ($imploded_fields) VALUES ($values)";
echo $statement; // Change this to actually execute the statement
}
Hoffe das macht Sinn. Wenn Sie diese Lösung weiter optimieren möchten, schauen Sie sich hilfreiche Funktionen wie an array_map
und array_keys
.