Autor
|
Tema: insertar en 2 tablas distintas (Leído 3,315 veces)
|
basickdagger
Desconectado
Mensajes: 650
System.out.println("this is weird as fuck");
|
hola tengo la siguiente duda tengo 2 tablas a las cuales voy a insertarles informacion... probe haciendo lo siguiente... $sql="INSERT INTO primer_tabla VALUES ('',1,2,3);"; $sql.="INSERT INTO segunda_tabla VALUES ('',3,2,1);"; /* '' las utilizo por que es autoincrementable */ echo $sql; /*imprimo mi consulta*/ if(!$insertar){ }
ya que lo ejecuto me aparece un error de syntaxis... pero si copio el echo que me arroja php y lo pego en la consola de mysql si se insertan y no me da error... si comento la primer consulta, la segunda si funciona, si comento la segunda, la primera también lo hace... ósea dejan de funcionar juntas... ayer ya habia probado he insertado varias veces entonces no entiendo q puede ser alguna idea o sugerencia ?? saludos...
|
|
« Última modificación: 23 Mayo 2014, 19:20 pm por basickdagger »
|
En línea
|
|
|
|
#!drvy
|
Lo que haces en la consola de mysql en realidad es tirar 2 consultas. Lo que intentas en el php es tirar 2 INSERTS en una consulta.. cosa que no es posible. $sql[] = 'INSERT INTO primer_tabla VALUES ('',1,2,3)'; $sql[] = "INSERT INTO segunda_tabla VALUES ('',3,2,1)"; foreach($sql as $consulta){ } }
PD: UTILIZA MYSQLI... mysql esta viejo.Saludos
|
|
|
En línea
|
|
|
|
basickdagger
Desconectado
Mensajes: 650
System.out.println("this is weird as fuck");
|
muchas gracias, por fin pude resolverlo, lo curioso es que ayer hice algunas pruebas y si me insertaba los datos... bueno ya estoy comenzando a dudar que realmente haya funcionado... jajaja peor bueno, como lo explicaste me funciono excelente, muchas gracias... pd. por más que me lo dicen al final siempre termino mysql hasta que lo recuerdo saludos
|
|
|
En línea
|
|
|
|
Mokonauta
Desconectado
Mensajes: 28
Destiny decides until is desify by the fated
|
Hay otra manera de hacer varios inserts en una sola sentencia Lo primero que tienes que hacer es traer los datos que vayas a insertar Ej. $datos = array('dato1','dato2','dato3','dato4'); // $tables = array("tabla1","tabla2"); foreach($datos as $dato){ $losdatos .= "'$dato',"; $a++; } $parausar = substr($losdatos, 0, -1); $sql = 'START TRANSACTION;<br />'; foreach($tables as $table){ $sql .= "INSERT INTO $table (num1, num2, num3, num4) VALUES ("; // Suponiendo que ingresaras los mismo datos en ambas tablas (poco probable pero es un ejemplo) $sql .= "$parausar);<br />"; } $sql .= "COMMIT;"; # Aquí ya tienes todo el query solo tienes que ejecutarlo, seguro que sabes como.
Los TRANSACTIONS son para hacer bloques de consultas, ayudan a mejorar el control y flujo de las mismas.
|
|
|
En línea
|
El destino decide hasta que es desafiado por los condenados.
|
|
|
#!drvy
|
@Mokonauta, ese código que has proporcionado es completamente infuncional y en todo caso seria valido solo para una conexión con CLIENT_MULTI_STATEMENTS o usando mysqli. Por otra parte efectivamente las transacciones son bastante útiles en estos casos. Una nota, si usas START TRANSACTION asegúrate de definir AUTOCOMMIT=0 antes. $consultas[] = 'INSERT INTO primer_tabla VALUES ('',1,2,3)'; $consultas[] = "INSERT INTO segunda_tabla VALUES ('',3,2,1)"; foreach($consultas as $consulta){ if(!mysql_query($consulta,$enlace)){ $error = true; break;} } // Si hay error, hacemos rollback (deshacer) // en caso contrario, commit (aplicar)
Aquí puedes ver porque usar mysqli te puede venir bien.. justo para lo que quieres.. <?php $enlace = new mysqli('host', 'user', 'pass', 'db'); if($enlace->connect_errno){ die('Fallo al connectar: '.$enlace->connect_error); } $query = "INSERT INTO primer_tabla VALUES ('',1,2,3); "; $query .= "INSERT INTO segunda_tabla VALUES ('',3,2,1); "; if(!$enlace->multi_query($query)){ die('Error en query: '.$enlace->error); } ?>
Saludos
|
|
« Última modificación: 30 Mayo 2014, 18:34 pm por #!drvy »
|
En línea
|
|
|
|
basickdagger
Desconectado
Mensajes: 650
System.out.println("this is weird as fuck");
|
hola gracias por sus respuestas pero... Por otra parte efectivamente las transacciones son bastante útiles en estos casos.
que ventajas existen de trabajarlo así, a diferencia de la primer manera que me comentaste? Saludos
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
editar formulario de datos de dos tablas distintas
Desarrollo Web
|
Casperman
|
0
|
1,858
|
25 Septiembre 2012, 22:50 pm
por Casperman
|
|
|
mysql relacionar campos de distintas tablas
Bases de Datos
|
Pirat3net
|
2
|
4,238
|
8 Octubre 2012, 16:15 pm
por Pirat3net
|
|
|
Insertar tablas de BD en mi web. (Estancado)
PHP
|
WiseHidden
|
2
|
2,574
|
23 Diciembre 2012, 19:33 pm
por WiseHidden
|
|
|
insertar datos de diferentes tablas con left join
Bases de Datos
|
gAb1
|
2
|
4,039
|
31 Julio 2015, 20:55 pm
por fran800m
|
|
|
Vincular tablas de distintas bases de datos
Programación Visual Basic
|
cristian.alarcon
|
0
|
2,219
|
10 Agosto 2017, 17:10 pm
por cristian.alarcon
|
|