¿cuál es la sintáxis correcta para hacer un multiple insert a una tabla?
saludos
| ||||
![]() ¿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. |
| |||
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. |
| ||||
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. |
| ||||
hehehe lo que yo buscaba era: Código PHP:
__________________ Hospedaje Web al mejor costo! |
| |||
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 |