Foros del Web » Programando para Internet » PHP »

INSERT INTO SELECT * de un Servidor a otro

Estas en el tema de INSERT INTO SELECT * de un Servidor a otro en el foro de PHP en Foros del Web. Buenas, Estoy con una cosa complicada, a ver si me pueden ayudar. Lo que quiero es traspasar los datos de una tabla a los datos ...
  #1 (permalink)  
Antiguo 21/07/2010, 10:58
 
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 1
INSERT INTO SELECT * de un Servidor a otro

Buenas,

Estoy con una cosa complicada, a ver si me pueden ayudar. Lo que quiero es traspasar los datos de una tabla a los datos de otra tabla que se encuentra en otro servidor. ¿Se puede hacer directamente o tengo que guardar la variable de alguna manera?

Gracias por las ideas!
  #2 (permalink)  
Antiguo 21/07/2010, 11:01
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: INSERT INTO SELECT * de un Servidor a otro

Se me ocurre la siguiente forma, aunque es la teoría, ponerlo en práctica no se hacerlo

1. Te conectas a la BD local
2. Sacas los datos y los guardas en alguna variable
3. Cierras la conexión con la BD local
4. Te conectas a la BD externa
5. Insertas los datos en la BD externa
6. etc...

La verdad no creo que sea muy complicado, solo debes saber conectarte a una BD externa a tu servidor local.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #3 (permalink)  
Antiguo 21/07/2010, 11:04
 
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: INSERT INTO SELECT * de un Servidor a otro

Lo probaré! Lo había pensado pero no sé bien bien cómo hacerloo, ¿podría ser algo así?

conexion_server1()
$todo = SELECT * FROM tabla1
cierro_conexion1()

conexion_server2()
$meto = INSERT INTO tabla2 SELECT * FROM $todo <--- ¿?¿?
cierro_conexion2()

Gracias, voy a ir probando!
  #4 (permalink)  
Antiguo 21/07/2010, 11:33
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: INSERT INTO SELECT * de un Servidor a otro

primero debes estar seguro que el otro seridor acepte conexiones remotas, luego debes crear un while que haga el recorrido al primer select, y dentro de este while colocas el insert desglosado

result= while(mysql_fletch_array($todo)) {
osea INSERT INTO tabla2 (campo1,campo2,campo3) values ( "$result['campo1']","$result['campo2']","$result['campo3']"),$link);

algo asi mas o menos, debes probarlo tu
  #5 (permalink)  
Antiguo 21/07/2010, 11:39
 
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: INSERT INTO SELECT * de un Servidor a otro

¿No tengo que hacer nada de Linked servers ni nada para esto tan concreto no?

Estoy probando todas las formas, voy ahora a intentarlo conlo tuyo johhan16, gracias!
  #6 (permalink)  
Antiguo 21/07/2010, 11:45
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: INSERT INTO SELECT * de un Servidor a otro

analiza el servidor externo o consulta con el proveedor y confirma que este acepte conexiones remotas... sino estas programando por nada ^^

suerte
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #7 (permalink)  
Antiguo 21/07/2010, 11:52
 
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: INSERT INTO SELECT * de un Servidor a otro

Hola,

Sí, sí me lo permite. Son 2 servidores dedicados míos. He hecho la prueba de hacer un select desde un server sobre las tablas de una bbdd del otro server y sí, me lo permite perfectamente.

Voy llegando, mi problema es que no sé bien bien cómo colocar las cosas en la sentencia INSERT INTO SELECT *

=(
  #8 (permalink)  
Antiguo 21/07/2010, 11:59
 
Fecha de Ingreso: diciembre-2008
Ubicación: sullana, Piura
Mensajes: 106
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: INSERT INTO SELECT * de un Servidor a otro

Cita:
Iniciado por sitoatic Ver Mensaje
Hola,

Sí, sí me lo permite. Son 2 servidores dedicados míos. He hecho la prueba de hacer un select desde un server sobre las tablas de una bbdd del otro server y sí, me lo permite perfectamente.

Voy llegando, mi problema es que no sé bien bien cómo colocar las cosas en la sentencia INSERT INTO SELECT *

=(
como te dijo johhan esta bien. saludos
  #9 (permalink)  
Antiguo 21/07/2010, 12:10
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: INSERT INTO SELECT * de un Servidor a otro

el codigo creo que seria algo asi:

Código PHP:
Ver original
  1. //....conexion 1 y 2.....
  2. $rs = mysql_query("select campo1, campo2, campoN from tabla", $conexion1);
  3. while($row = mysql_fetch_array($rs)){
  4.     mysql_query("insert into tabla values('".$row['campo1']."', '".$row['campo2']."', '".$row['campoN']."')", $conexion2);
  5. }

Suerte
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #10 (permalink)  
Antiguo 21/07/2010, 12:21
 
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: INSERT INTO SELECT * de un Servidor a otro

Perfecto señores!! Muchas gracias.

Con vuestra ayuda muy sencillo. Un poco peliagudo sólo el meter todos los values, porque son muchísimas columnas, pero ya lo acabaré atando eso. Además, tampoco tarda en exceso, son 140.000 filas de momento y no tarda más de 1 minutillo...

Muchas gracias de verdad! Me veía ahogado con esto T_T
  #11 (permalink)  
Antiguo 21/07/2010, 12:25
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: INSERT INTO SELECT * de un Servidor a otro

siempre a la orden amigo

Etiquetas: insert, select, servidores
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 01:25.