Foros del Web » Programando para Internet » PHP »

Insert To

Estas en el tema de Insert To en el foro de PHP en Foros del Web. ¿cuál es la sintáxis correcta para hacer un multiple insert a una tabla? saludos...
  #1 (permalink)  
Antiguo 23/08/2006, 15:32
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Insert To

¿cuál es la sintáxis correcta para hacer un multiple insert a una tabla?


saludos
__________________
Hospedaje Web al mejor costo!
  #2 (permalink)  
Antiguo 23/08/2006, 15:48
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo

¿A que te refieres con un multiple insert? Si pudieras abundar mas en tu problema te lo agradeceria muchisimo.

Con respecto a la sintaxis del insert checa est link http://dev.mysql.com/doc/refman/5.0/en/insert.html

Saludillos.
  #3 (permalink)  
Antiguo 23/08/2006, 16:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Con las funciones de PHP mysql_query() sólo puedes ejecutar una sentencia SQL por instrucción: entiendase intrucción SQL a lo que está entre ; en un juego de instrucciones tipo:

INSERT INTO tabla ...;
INSERT INTo tabla ..;

(el títpico "dump" de una consulta SQL que nos dá phpMyadmin o GUI's para Mysql de ese estilo).

En ese caso .. tu "archivo" se trata por líneas (al separador ;) y se alimenta un bucle (for() .. etc) para atacar tu mysql_quer() una por una instrucción SQL.

Si usas las funciones mysqli_query() (www.php.net/mysqli_query) puedes darle N instrucciones seguidas para que las ejecute.

No sé si será esto lo que consultas . .realmente no queda muy claro lo que quieres hacer .. intenta exponer ejemplos.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 23/08/2006, 18:36
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 2 meses
Puntos: 3
Creo que lo que el pide es , por ejemplo si quiere insertar 4 registros, en lugar de hacer:
insert into blablbla
insert into blablbla
insert into blablbla
insert into blablbla
Hacer solo un insert o algo parecido ....
Yo tambien tengo esa duda... hace tiempo vi un query donde en un solo insert... insertaban varias veces... y no hablo de codigo PHP... desafortunadamente no recuerdo como era..
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #5 (permalink)  
Antiguo 23/08/2006, 19:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por B** Ver Mensaje
Creo que lo que el pide es , por ejemplo si quiere insertar 4 registros, en lugar de hacer:
insert into blablbla
insert into blablbla
insert into blablbla
insert into blablbla
Hacer solo un insert o algo parecido ....
Yo tambien tengo esa duda... hace tiempo vi un query donde en un solo insert... insertaban varias veces... y no hablo de codigo PHP... desafortunadamente no recuerdo como era..
mm .. En principio si tus sentencias SQL estàn separadas por un ; y todo en una "variable" la cual ejecutar vìa mysqli_query() se ejecutará sin màs PHP por médio.

Ojo que menciono "myslqi_query" no de mysql_query() común.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 23/08/2006, 21:06
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
hehehe lo que yo buscaba era:

Código PHP:
$q"insert into usuarios (id,nombre)
value(1,"
juan")
value(2,"
luis")
.... 
No he dormido casi... Problema solucionado. Gracias una vez más
__________________
Hospedaje Web al mejor costo!
  #7 (permalink)  
Antiguo 23/08/2006, 22:37
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 18 años, 3 meses
Puntos: 5
Buenas, ni sabía que existía esa sintaxis, me viene muy bien porque justamente estaba insertando muchos registros a la vez con un loop. (Por cada registro, un insert, mínimo unos 50, en no mucho tiempo puede que ese número suba a 5.000 ó 6.000). Con esto supongo que será bastante más óptimo; a simple vista incluso me parece más rápido: habrá que ver cuando los números empiecen a crecer...

Sólo un detalle. Es:

INSERT INTO tabla (col1,col2)
VALUES (1,'a'),(2,'b'),(3,'c');

Sin repetir VALUES, y separando cada nueva fila por comas

Gracias por la info.

Suerte
Califa


PD: Acabo de leer un poco más y veo un potencial problema con este método. En algún punto, si el tamaño del string de la consulta crece demasiado, puede llegar a generar un error.

El máximo tamaño de la consulta está determinado por el valor de la variable de configuración max allowed packet. Revisé la configuración de dos servidores que tengo a mano y este valor está en 1 MBytes (calculo que debe ser el valor por defecto). Lo cual significaría que el máximo que podría tener la consulta sería algo así como 1 millón de caracteres. Que sería como insertar 64.000 filas de un tirón con la consulta que estoy usando actualmente, lo cual en principio parece un margen bastante razonable (igual, calculo que antes que pasarse con el tamaño de la consulta habría un timeout del script o de la conexión al server MySQL).

Si alguien ve algún error en los 'cálculos' de arriba o algo que se me esté pasando, soy todo oídos.

Última edición por califa010; 23/08/2006 a las 23:00
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 17:19.