Si usa una declaración preparada, puede recorrer su $JSON_data
matriz con un bucle foreach y ejecute INSERT
con esa parte de los datos.
El uso de declaraciones preparadas reducirá la sobrecarga de la construcción de la consulta, simplemente enviando los nuevos datos a la base de datos en cada iteración del bucle.
$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();
}
Tenga en cuenta que el primer argumento de bind_param()
le dice cuántos valores vinculará, así como el tipo de cada valor.s
corresponde a datos de cadena, i
corresponde a datos enteros, d
corresponde a double (coma flotante), y b
corresponde a datos binarios.
Otra advertencia:NO cite cualquier dato de cadena, como los s
datatype le dice a mysql que espere una cadena. Si cita el ?
en la declaración preparada, le dirá que la cantidad de parámetros es incorrecta. Si cita las cadenas, se citará en mysql.
EDITAR:
Si desea utilizar el mismo paradigma (insertar varias filas con una consulta), existen formas de hacerlo. Una forma es crear una clase que agregue el bind_param
llama y hace un bind_param cuando ejecuta la consulta. El código para eso está aquí
.