Ho bisogno di inserire un oggetto Javascript in una nuova tabella MySQL usando PHP. Il mio oggetto è nella seguente forma:
{
rowA:[A1,A2,A3],
rowB:[B1,B2,B3],
rowC:[C1,C2,C3],
}
Ho anche una matrice di nomi di colonne:
$columns = array("col1","col2","col3");
Ho bisogno di usare questi dati per creare e riempire una tabella MySQL nel seguente formato:
col1 col2 col3
rowA A1 A2 A3
rowB B1 B2 B3
rowC C1 C2 C3
Posso accedere al mio server e creare una tabella, ma non sono ancora sicuro di come trattare con JSON:
$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...
)";
Sono abbastanza nuovo per PHP e non sono stato in grado di ottenere codice in PHP funzionante che legge le chiavi JSON e le imposta come valori di riga MySQL.
risposte:
2 per risposta № 1Come menzionato nel commento precedente, ti consiglio di dividere il problema: la creazione della tabella non dovrebbe essere un problema perché i valori non provengono dal file JSON.
Quindi iniziamo convalidando il tuo file JSON. Puoi usare uno strumento online per questo. Dai un'occhiata al codice qui sotto che puoi eseguire separatamente dal tuo script corrente. Non è la soluzione più elegante ma è quella che penso possa aiutarti a capire meglio la soluzione.
<?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
}
Spero che questo abbia un senso. Se si desidera ulteriormente ottimizzare questa soluzione, consultare le funzioni utili come array_map
e array_keys
.