Foros del Web » Programando para Internet » PHP »

Insertar array mysql

Estas en el tema de Insertar array mysql en el foro de PHP en Foros del Web. Hola, es una duda de principiante... Imagenemos que tenemos muchos inputs en un formulario, en vez de recoger estos valores y renombrarlos para luego insertarlos ...
  #1 (permalink)  
Antiguo 25/08/2010, 04:27
 
Fecha de Ingreso: enero-2010
Mensajes: 46
Antigüedad: 14 años, 2 meses
Puntos: 0
Insertar array mysql

Hola, es una duda de principiante...

Imagenemos que tenemos muchos inputs en un formulario, en vez de recoger estos valores y renombrarlos para luego insertarlos a la base de datos, tal que así:
Código PHP:
$cif=$_POST['cif'];
$nombre=$_POST['nombre'];
$email=$_POST['email'];
$pass1=$_POST['password1'];
mysql_query("INSERT INTO `bd`.`clientes` (`usuario`, `nombre`, `email`, `pass`) VALUES ('$cif', '$nombre', '$email', '$pass1')") or die(mysql_error()); 
La pregunta es, almacenando todo esto en un array ganaría tiempo?,y como insertar ese array en la mysql. Si alguien me lo puede explicar estaría muy agradecido.

Un saludo y gracias a todos.
  #2 (permalink)  
Antiguo 25/08/2010, 05:46
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: Insertar array mysql

MySQL no puede manejar arrays. No existen en ese contexto, a diferencia de Postgre.
Lo que debes hacer en todo caso es o bien una carga masiva con LOAD DATA INFILE, contra un archivo de texto local o en servidor, o bien crear un INSERT masivo, con muchos registros encadenados, por bloque.
Cualquiera de las dos es igualmente funcional. La segunda opción consiste en crear una sentencia tal que sea:
Código MySQL:
Ver original
  1. NSERT INTO `bd`.`clientes` (`usuario`, `nombre`, `email`, `pass`)
  2.         ('valor1', 'valor2', 'valor3', 'valor4'),
  3.         ('valor1', 'valor2', 'valor3', 'valor4'),
  4.         ('valor1', 'valor2', 'valor3', 'valor4'),
  5.         ('valor1', 'valor2', 'valor3', 'valor4'),
  6.         ('valor1', 'valor2', 'valor3', 'valor4'),
  7.         ('valor1', 'valor2', 'valor3', 'valor4'),
  8.         ('valor1', 'valor2', 'valor3', 'valor4'),
  9.         ('valor1', 'valor2', 'valor3', 'valor4'),
  10.         ('valor1', 'valor2', 'valor3', 'valor4'),
  11.         ('valor1', 'valor2', 'valor3', 'valor4'),
  12.         ('valor1', 'valor2', 'valor3', 'valor4'),
  13.         ('valor1', 'valor2', 'valor3', 'valor4'),
  14.         ('valor1', 'valor2', 'valor3', 'valor4');
Esto debe quedar cargado en una sola variable que se envía a MySQL en una sola ejecución. Obviamente, la creación de esta sentencia requiere una programación más fina, pero es inmenso el beneficio cuando tienes centenares de registros a ingresar.
De este modo, por ejemplo, introduzco alrededor de 80.000 registros en bloques de 500 registros, en un lapso de 10 segundos, siendo cada uno de ellos de 52 bytes (52 x 80000 = 4.160.000 bytes).
__________________
¿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 25/08/2010, 06:41
 
Fecha de Ingreso: enero-2010
Mensajes: 46
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Insertar array mysql

Oks!! Muchisimas gracias amigo, me queda todo claro.

Un saludo.

Etiquetas: mysql
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 10:39.