Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Preparar cada arreglo que contiene un arreglo en registros insertables para SQL

Estas en el tema de Preparar cada arreglo que contiene un arreglo en registros insertables para SQL en el foro de PHP en Foros del Web. Buenas, la cuestión es que tengo un arreglo bidmensional así: Código PHP: $array  = array(array( "nombre" => "Juan" ,  "apellido" => "Lopez" ), array( "nombre" => "Ana" ...
  #1 (permalink)  
Antiguo 26/09/2015, 07:52
 
Fecha de Ingreso: enero-2015
Ubicación: Tegucigalpa
Mensajes: 25
Antigüedad: 9 años, 3 meses
Puntos: 0
Pregunta Preparar cada arreglo que contiene un arreglo en registros insertables para SQL

Buenas, la cuestión es que tengo un arreglo bidmensional así:
Código PHP:
$array = array(array("nombre"=>"Juan""apellido"=>"Lopez"), array("nombre"=>"Ana""apellido"=>"Martinez")); 
.

Lo que quiero saber es cómo insertar en una tabla de SQL que contiene los campos nombre y apellido (así como en los arreglos). De antemano gracias.
  #2 (permalink)  
Antiguo 26/09/2015, 08:08
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Preparar cada arreglo que contiene un arreglo en registros insertables par

Tienes que lograr que quede armada de esta forma:
Código SQL:
Ver original
  1. INSERT INTO tabla (nombre, apellido)
  2. VALUES ('Juan', 'Lopez'), ('Ana','Martinez');
Es decir, debe haber un set de valores entre paréntesis, por cada registro a insertar.
De esa forma puedes crear un INSERT multiple de 1 a N registros de una sola vez, dependiendo el valor de N de la interfaz y la capacidad del buffer de consultas de la base.
Yo he llegado a hacer en ocasiones inserts con hasta 1.000 registros en una sola ejecución sin ningún problema.
También he creado inserts masivos así, pero iterando muchos más, procesando un millón de registros (no es broma), en bloques de hasta 1.000 sets de datos por iteración. Se toma su tiempo para completarse, pero funciona. Incluso, bajo ciertas condiciones, puedes crear un archivo de SQL con el insert, y que lo cargue masivamente de ese modo.
Las inserciones masivas a una base tienen varias alternativas posibles.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 26/09/2015, 15:00
 
Fecha de Ingreso: marzo-2015
Mensajes: 183
Antigüedad: 9 años, 1 mes
Puntos: 8
Respuesta: Preparar cada arreglo que contiene un arreglo en registros insertables par

Cita:
Iniciado por Gabriel_024 Ver Mensaje
Buenas, la cuestión es que tengo un arreglo bidmensional así:
Código PHP:
$array = array(array("nombre"=>"Juan""apellido"=>"Lopez"), array("nombre"=>"Ana""apellido"=>"Martinez")); 
.

Lo que quiero saber es cómo insertar en una tabla de SQL que contiene los campos nombre y apellido (así como en los arreglos). De antemano gracias.
Te doy una pista de como recorrer tu array multidimensional, creo que sólo tendrías que intenta armar la estructura del insert para tus datos como te indica gnzsoloyo ..
Saludos.
Código PHP:
Ver original
  1. $array = array(array("nombre"=>"Juan", "apellido"=>"Lopez"), array("nombre"=>"Ana", "apellido"=>"Martinez"));  
  2. for($ni=0;$ni<count($array);$ni++){
  3.     foreach($array[$ni] as $col=>$val){
  4.         echo $col.":".$val."<br>";
  5.     }
  6. }

Etiquetas: sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:20.