Foros del Web » Programando para Internet » PHP »

¿Uso de dos bases de datos simultaneamente. Se puede?

Estas en el tema de ¿Uso de dos bases de datos simultaneamente. Se puede? en el foro de PHP en Foros del Web. Holas que tal, bueno creo que ya tengo malas referencias por mis post, esque la verdad necesito aclarar las dudas que tengo, buen ahora me ...
  #1 (permalink)  
Antiguo 18/10/2006, 14:09
Avatar de ikaroraul  
Fecha de Ingreso: octubre-2006
Ubicación: La Paz
Mensajes: 391
Antigüedad: 17 años, 6 meses
Puntos: 16
¿Uso de dos bases de datos simultaneamente. Se puede?

Holas que tal, bueno creo que ya tengo malas referencias por mis post, esque la verdad necesito aclarar las dudas que tengo, buen ahora me choque con este lio.
Bueno lo que quiero es insertar datos entre tablas las cuales estan en dos bd distintas, miren el query es el siguiente:

INSERT INTO inventarios.prodprob (numero,fecha,densidad,dimensiones,observaciones,i d)
select
1,
now(),
bdkorigoma3.tabla_bloquesespuma_pendientes4.Densid ad,
bdkorigoma3.tabla_bloquesespuma_pendientes4.Dimens iones,
bdkorigoma3.tabla_bloquesespuma_pendientes4.Observ aciones,
null
FROM bdkorigoma3.tabla_bloquesespuma_pendientes4;


la sintaxis es "nombredeBD.Tabla.Campo"
y si funciona desde un ejecutor de consultassql ( Mysql - Front ) desde ahi me funciona me agrega los registros .
Ahora lo malo es que no se como hacerlo desde php , no se como conectarme a las dos bases de datos, la verdad yo utilizo lo siguiente para conectarme:

Código PHP:
<?php 
//funcion para conectar a la base de datos
function Conectarse() 

   if (!(
$link=mysql_connect("localhost","root","juane"))) 
   { 
      echo 
"Error conectando a la base de datos."
      exit(); 
   } 
   if (!
mysql_select_db("bdkorigoma3",$link)) 
   { 
      echo 
"Error seleccionando la base de datos."
      exit(); 
   } 
   return 
$link

?>
Bueno con ese codigo conecto con mi base de datos, pero ahora como seria con dos bases de datos??.
Ayuda porfavor. que la nesecito, y de antemano 1000 disculpas a los moderadores si algo que escribi aqui esta mal pero asi se aprende

Bueno pues espero de su ayuda

Última edición por ikaroraul; 18/10/2006 a las 14:24 Razón: Para que se entienda el query
  #2 (permalink)  
Antiguo 18/10/2006, 14:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Realmente sé que funciona la sintax SQL que mencionas aunque no es muy "típica" verla (ni en el manual de Msyql está muy claro .. o no lo ví bien).

Cara a PHP es cierto que tiene su función para seleccionar una BBDD concreta.

En tu caso, .. si seleccionas la BBDD con la función de PHP no sé como se comportará tu código. Deberías simplemente probarlo. Lo otro que puedes probar es a quitar tu función de selecciónd e BBDD ya que en tus sentencias SQL te refieres a las BBDD implicadas.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 18/10/2006, 14:49
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

Pues puedes realizar dos conexiones sin ningun problema, realizar la conexion a la bd, realizas la "acción" y cierras la conexión y otra ves para la otra bd, claro que debes tener los permisos para acceder a las bd's.

De hecho podrias crear una función donde le pases el host, usuario,pass, y bd.

Saludillos.
  #4 (permalink)  
Antiguo 18/10/2006, 14:56
Avatar de ikaroraul  
Fecha de Ingreso: octubre-2006
Ubicación: La Paz
Mensajes: 391
Antigüedad: 17 años, 6 meses
Puntos: 16
Gracias pero nada

Gracias por la respuesta, mira hize esto:

Código PHP:
<?
include("cconexion.php"); 
$link=Conectarse();
mysql_query("INSERT INTO inventarios.prodprob (numero,fecha,densidad,dimensiones,observaciones,id)
select 
1,
now(),
bdkorigoma3.tabla_bloquesespuma_pendientes4.Densidad,
bdkorigoma3.tabla_bloquesespuma_pendientes4.Dimensiones,
bdkorigoma3.tabla_bloquesespuma_pendientes4.Observaciones,
null
FROM bdkorigoma3.tabla_bloquesespuma_pendientes4)"
,$link);
?>
no me sale error, pero tampòco adiciona, ahora, quite la parte en donde se selecciona la base de datos, y me sale el error de que la base de datos no esta seleccionada. Pero Gracias
  #5 (permalink)  
Antiguo 18/10/2006, 14:59
Avatar de ikaroraul  
Fecha de Ingreso: octubre-2006
Ubicación: La Paz
Mensajes: 391
Antigüedad: 17 años, 6 meses
Puntos: 16
Gracias....

Cita:
Iniciado por mauled Ver Mensaje
Pues puedes realizar dos conexiones sin ningun problema, realizar la conexion a la bd, realizas la "acción" y cierras la conexión y otra ves para la otra bd, claro que debes tener los permisos para acceder a las bd's.

De hecho podrias crear una función donde le pases el host, usuario,pass, y bd.

Saludillos.
No asi no, lo que quiero es que ambas conexiones esten activas, esto para poder realizar el query de INSERT, en donde manejo las dos BBDD

Última edición por ikaroraul; 18/10/2006 a las 15:00 Razón: me equipobue
  #6 (permalink)  
Antiguo 18/10/2006, 15:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Entonces, vas a tener que hacer dos conexiones a tus BBDD .. una para extraer los datos que tienes en la otra y otra para insertarlos en la otra BBDD.

Si hay bucle por médio que implementar .. en ese lugar tendrás que crear dos links de conexión diferentes y usarlos en todas las llamadas a las funciones de mysql_xxx() que usen ambas conexiones.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 18/10/2006, 15:12
Avatar de skatomundo  
Fecha de Ingreso: junio-2002
Ubicación: Santiago - CL
Mensajes: 2.532
Antigüedad: 21 años, 10 meses
Puntos: 125
Ahi listando 2 Bds sobre el server.. si desas hacer un insert!! Modificar la SQL!! supongo resultará! Prueba!

Código PHP:
$HOST    "localhost";
$USER    "miuser";
$PASS    "mipass";
$DB     "base1";
$DB2    "base2";
$Conexion mysql_connect($HOST$USER$PASS);

//BDS seleccionando
mysql_select_db($DB);
mysql_select_db($DB2);

$sql "Select $DB.noticias.NOTITITULO, $DB2.agenda.AGENDADESCRIPCION From $DB.noticias, $DB2.agenda";
echo 
$sql;
$Consulta     mysql_query($sql,$Conexion);
$NumFilas     mysql_num_rows($Consulta);
if(
$NumFilas 0){
    for(
$i=0;$i<$NumFilas;$i++){
        echo 
mysql_result($Consulta,$i,"NOTITITULO")." - ".mysql_result($Consulta,$i,"AGENDADESCRIPCION")."<br>";
    }


  #8 (permalink)  
Antiguo 18/10/2006, 15:29
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Pues creo que otra opcion sería hacer algo como esto:

Código PHP:
<?php
$conexion 
mysql_connect("localhost","root","juane");
mysql_select_db('bdkorigoma3');
$consulta "SELECT Densidad,Dimensiones,Observaciones FROM tabla_bloquesespuma_pendientes4";
$result mysql_query($consulta);
$numero_de_result mysql_num_rows($result);

if ( 
$numero_de_result )
{
   
mysql_select_db('inventarios');

   while ( 
$fila mysql_fetch_array($result) )
   {
      
$valores "1,now(),$fila['Densidad'],$fila['Dimensiones'],$fila['Observaciones'],null";
      
$inserta "INSERT INTO prodprob (numero,fecha,densidad,dimensiones,observaciones,id) VALUES ($valores)";
      
mysql_query($inserta);
      echo 
$valores."<br/>"// esto con el fin de ver en pantalla que fue lo que se inserto
   
}
}
else
{
   echo 
"No se obtuvieron datos de la consulta.";
}
?>
Espero te funcione o por lo menos te de una idea. Suerte

Última edición por Erikfrancisco; 18/10/2006 a las 15:49
  #9 (permalink)  
Antiguo 18/10/2006, 15:35
Avatar de ikaroraul  
Fecha de Ingreso: octubre-2006
Ubicación: La Paz
Mensajes: 391
Antigüedad: 17 años, 6 meses
Puntos: 16
De acuerdo Gracias A Todos

Muchas gracias a todos, en especia la "skatomundo" la forma que indica el funciona, vi en muchos foros que decian que esto era imposible de realizar, que no se podia hacer querys entre DOS BASES DE DATOS, pues asi es como me funciono:

Código PHP:
<?
$HOST    
"localhost"
$USER    "root"
$PASS    "juane"
$DB1     "bdkorigoma3"
$DB2    "inventarios"
$Conexion mysql_connect($HOST$USER$PASS); 

//BDS seleccionando 
mysql_select_db($DB1); 
mysql_select_db($DB2); 

$sql "INSERT INTO $DB2.prodprob 
SELECT
1,
now(),
$DB1.tabla_bloquesespuma_pendientes4.Densidad,
$DB1.tabla_bloquesespuma_pendientes4.Dimensiones,
$DB1.tabla_bloquesespuma_pendientes4.Observaciones,
null
FROM $DB1.tabla_bloquesespuma_pendientes4"
;
echo 
$sql;
mysql_query($sql,$Conexion);
?>
FUNCIONA!!!!!, Ojala que esto les sirva a muchos, que talvez entren en la misma duda.

(Lloro) De felicidad porque Funciona Gracias
EXITOS!!!!!
  #10 (permalink)  
Antiguo 18/10/2006, 17:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Les invito a realizar una FAQ ya sea skatomundo y/o ikaroraul con el último código presentado donde se hace mención a las dos BBDD en el SQL y las dos msyql_select_db() .. que por mi parte nunca había visto ese uso así, pero si funciona .. así será.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 18/10/2006, 17:37
Avatar de ikaroraul  
Fecha de Ingreso: octubre-2006
Ubicación: La Paz
Mensajes: 391
Antigüedad: 17 años, 6 meses
Puntos: 16
Orale un FAQ

Holas yo de nuevo, la verdad no se donde se hace los FAQ'S pero el codigo que esta aqui si funciona 100% probado, y si tienes razon señor moderador, busque y busque y me digieron que eso era imposible, pero como me funciona FUNCIONA !!!! por eso sigo feliz, Gracias señor moderados se agradece un monton...

hhuuuuaaaaaoooo un FAQ que genial

Gracias a todos y a skatomundo por el codigo 1000 Gracias,
  #12 (permalink)  
Antiguo 19/10/2006, 05:33
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 ikaroraul Ver Mensaje
Holas yo de nuevo, la verdad no se donde se hace los FAQ'S pero el codigo que esta aqui si funciona 100% probado, y si tienes razon señor moderador, busque y busque y me digieron que eso era imposible, pero como me funciona FUNCIONA !!!! por eso sigo feliz, Gracias señor moderados se agradece un monton...

hhuuuuaaaaaoooo un FAQ que genial

Gracias a todos y a skatomundo por el codigo 1000 Gracias,
Las FAQ's las tienes en el foro de PHP (en este) al principio del mismo veras un mensaje marcado como importante que dice "FAQ's de PHP" .. ahí lees un poco el primer mensaje que explica como redactar tu FAQ y respondes el mismo mensaje, así la FAQ quedará bajo tu autoría (si lo haces tu .. no te olvides de hacer referencia a este mensaje y/o a "skatomundo" que te orientó).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 03:12.