Se utilizzi un'istruzione preparata, puoi scorrere i tuoi $JSON_data
array con un ciclo foreach ed eseguire INSERT
con quel pezzo di dati.
L'utilizzo di istruzioni preparate ridurrà il sovraccarico della creazione della query, inviando semplicemente i nuovi dati al database ad ogni iterazione del ciclo.
$query = mysqli_prepare("INSERT INTO `MyTable` (`col1`,`col2`,`col3`)
VALUES(?,?,?)");
foreach($JSON_data as $key => $value) {
$query->bind_param('sss',$value["prop1"],$value["prop2"],$value["prop3"];
$query->execute();
}
Nota che il primo argomento di bind_param()
indica quanti valori collegherai, nonché il tipo per ciascun valore.s
corrisponde a dati stringa, i
corrisponde a dati interi, d
corrisponde a double (virgola mobile) e b
corrisponde a dati binari.
Un'altra parola di cautela, NON cita qualsiasi dato stringa, come s
datatype dice a MySQL di aspettarsi una stringa. Se citi il ?
nella dichiarazione preparata, ti dirà che il numero di parametri è sbagliato. Se citi le stringhe, verrà citato in mysql.
MODIFICA:
Se vuoi utilizzare lo stesso paradigma (inserimento di più righe con una query), ci sono modi per farlo. Un modo è creare una classe che aggreghi il bind_param
chiama ed esegui un bind_param quando esegui la query. Il codice è qui
.