Foros del Web » Programando para Internet » PHP »

Varios INSERT contatenados?

Estas en el tema de Varios INSERT contatenados? en el foro de PHP en Foros del Web. Hola, Estoy intentando hacer varios INSERT en una sola consulta, y yo lo tengo puesto asi: Código PHP: $sql = "" ; for( $i = ...
  #1 (permalink)  
Antiguo 24/02/2005, 04:45
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 14 años, 3 meses
Puntos: 4
Varios INSERT contatenados?

Hola,

Estoy intentando hacer varios INSERT en una sola consulta, y yo lo tengo puesto asi:
Código PHP:
$sql="";
for(
$i=0;$i<5;$i++){
    
$sql.="INSERT INTO admin( id, usuario, pass ) VALUES ( '', $usuario[$i], '$pass[$i]');";
}
$ejecuta=mysql_query($sql,$conex);//esto esta bien, ya lo comprobe 
Pero no me tira, me da una error al contatenar. ¿Lo estoy haciendo mal?, como se haria?

Gracias.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #2 (permalink)  
Antiguo 24/02/2005, 04:51
 
Fecha de Ingreso: febrero-2005
Mensajes: 81
Antigüedad: 12 años, 10 meses
Puntos: 0
has probado de ejecutar el mysql_query dentro del for?


for($i=0;$i<5;$i++){
$sql="";
$sql.="INSERT INTO admin( id, usuario, pass ) VALUES ( '', $usuario[$i], '$pass
[$i]');";
$ejecuta=mysql_query($sql,$conex);//esto esta bien, ya lo comprobe
}
  #3 (permalink)  
Antiguo 24/02/2005, 05:07
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 14 años, 3 meses
Puntos: 4
Pues no lo probe, pero es que de esa manera haria un mysql_query varias veces, lo cual no es lo que busco. Yo lo que quiero es hacer una "super cadena" para que luego al salir del FOR me "ataque" una sola vez a la base de datos.
Gracias por la ayuda!.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #4 (permalink)  
Antiguo 24/02/2005, 05:28
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 14 años, 4 meses
Puntos: 2
¿qué error te da?
__________________
Estoy contagiado de Generación-I
  #5 (permalink)  
Antiguo 24/02/2005, 05:30
 
Fecha de Ingreso: febrero-2005
Mensajes: 81
Antigüedad: 12 años, 10 meses
Puntos: 0
prueba

$sql="INSERT INTO admin( id, usuario, pass ) VALUES ";
for($i=0;$i<5;$i++){
$sql.="( '', $usuario[$i], '$pass[$i]'), ";
}
$sql.=";";
$ejecuta=mysql_query($sql,$conex);//esto esta bien, ya lo comprobe


asi me parece que le puedes pasar varios valores con el mismo insert into. No me acuerdo si se separa por "," o por ";" cada registro.

No me acuerdo muy bien pero en "$sql.=loquesea" el punto es como si pusieramos "$sql=$sql + loquesea" no?

Última edición por klareNs; 24/02/2005 a las 05:33
  #6 (permalink)  
Antiguo 24/02/2005, 05:49
cartucho
Invitado
 
Mensajes: n/a
Puntos:
Fijate que te faltan las comillas en el array $usuario y q no sea eso lo q falla

"INSERT INTO admin( id, usuario, pass ) VALUES ( '', '$usuario[$i]', '$pass[$i]');"

saludos
  #7 (permalink)  
Antiguo 24/02/2005, 05:52
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 14 años, 3 meses
Puntos: 4
Gracias klareNs, creo que eso puede funcionar, aunque lo he solucionado de otra forma, a lo bruto sin bucle FOR, pero bueno.
Efectivamente $sql.=loquesea es lo mismo que $sql=$sql+loquesea

El error que me daba era que al llegar a la 2º vez que tiene que hacer el INSERT me da un fallo: "parse error on line...." o algo asi.

Gracias a todos.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
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 05:38.