Foros del Web » Programando para Internet » PHP »

Utlizar 2 DB al mismo tiempo

Estas en el tema de Utlizar 2 DB al mismo tiempo en el foro de PHP en Foros del Web. Necesito saber como hago para consultar dos DB al mismo tiempo. ¿de esta forma de puede? #-------Me contenecto a la DB1------------# $DB1=mysql_connect ("localhost1", "user1", "pass1") ...
  #1 (permalink)  
Antiguo 12/04/2003, 08:51
 
Fecha de Ingreso: noviembre-2002
Mensajes: 190
Antigüedad: 21 años, 5 meses
Puntos: 0
Utlizar 2 DB al mismo tiempo

Necesito saber como hago para consultar dos DB al mismo tiempo. ¿de esta forma de puede?

#-------Me contenecto a la DB1------------#
$DB1=mysql_connect ("localhost1", "user1", "pass1") or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db ("dbname1");
#------aca hago todo lo que necesito con la DB n1------------#
$s = mysql_query("SELECT * FROM st_categories WHERE visable='Y' ORDER BY $orderedby $wayorder");
$catCount = 0;
$catNumber = mysql_num_rows($s);
while($r = mysql_fetch_array($s)){
$cid = $r["cid"];
$catname = $r["catname"];
++$catCount;

#-------aca ya necesito consulta la DB n2, entonces me contenecto------------#

$DB2=mysql_connect ("localhost2", "user2", "pas2") or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db ("DB2");
#------aca hago todo lo que necesito con la DB n2------------#

$DB2 = mysql_query("SELECT * FROM st_links ORDER BY rand() LIMIT $limitlinks");
while($result2 = mysql_fetch_array($s2)){
$linkid = $result2["linkid"];
$date = date ("j/n");
$des = $result2["des"];
$catid = $result2["catid"];
$url = $result2["url"];

#------ PERO ACA necesito nuevamente consultar la DB n1------------#

$r3 = @mysql_fetch_array(mysql_query("SELECT * FROM st_categories WHERE cid=$catid"));
$cid = $r3["cid"];
$catname = $r3["catname"];
#----------------------THE END------Gracias y un abrazo a todos!-------#
  #2 (permalink)  
Antiguo 12/04/2003, 09:23
Avatar de cubis  
Fecha de Ingreso: abril-2002
Ubicación: Medellín
Mensajes: 1.040
Antigüedad: 22 años
Puntos: 2
Creo que para eso se usan las conexiones parsistentes... que alguien me corriga si estoy mal, pero la verdad no se como hacer, no es muy dificil, aquí te van a ayudar.

Saludos.
__________________
[color=gray][size=1]Usuario Registrado de Linux #315639
  #3 (permalink)  
Antiguo 12/04/2003, 09:47
Avatar de sdf23  
Fecha de Ingreso: diciembre-2002
Mensajes: 297
Antigüedad: 21 años, 4 meses
Puntos: 0
Código PHP:
#-------Me contenecto a la DB1------------#
$DB1=mysql_connect ("localhost1""user1""pass1") or die ('I cannot connect to the database because: ' mysql_error());
mysql_select_db ("dbname1");
#------aca hago todo lo que necesito con la DB n1------------#
$s mysql_query("SELECT * FROM st_categories WHERE visable='Y' ORDER BY $orderedby $wayorder"$DB1); 
$catCount 0;
$catNumber mysql_num_rows($s);
while(
$r mysql_fetch_array($s)){ 
$cid $r["cid"]; 
$catname $r["catname"]; 
++
$catCount

#-------aca ya necesito consulta la DB n2, entonces me contenecto------------#

$DB2=mysql_connect ("localhost2""user2""pas2") or die ('I cannot connect to the database because: ' mysql_error());
mysql_select_db ("DB2"); 
#------aca hago todo lo que necesito con la DB n2------------#

$DB2 mysql_query("SELECT * FROM st_links ORDER BY rand() LIMIT $limitlinks"$DB2);
while(
$result2 mysql_fetch_array($s2)){
$linkid $result2["linkid"];
$date date ("j/n");
$des $result2["des"];
$catid $result2["catid"];
$url $result2["url"];

#------ PERO ACA necesito nuevamente consultar la DB n1------------#

$r3 = @mysql_fetch_array(mysql_query("SELECT * FROM st_categories WHERE cid=$catid"$DB1));
$cid $r3["cid"];
$catname $r3["catname"];
#----------------------THE END------Gracias y un abrazo a todos!-------# 
$coneccion= mysql_connect("localhost", "root", "");
mysql_query("consulta", $coneccion);
  #4 (permalink)  
Antiguo 12/04/2003, 10:34
Avatar de cubis  
Fecha de Ingreso: abril-2002
Ubicación: Medellín
Mensajes: 1.040
Antigüedad: 22 años
Puntos: 2
Mira quedaria así.

Haces el query

mysql_query("consulta", $DB1);

Saludos.
__________________
[color=gray][size=1]Usuario Registrado de Linux #315639
  #5 (permalink)  
Antiguo 12/04/2003, 11:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Las conexiones persistentes no influyen para nada a la hora de acceder a varias BD diferentes ..

Lo que si que tienes que usar SIEMPRE son los "links" de conexión de la BD que estas trabajando ..

Osese ..

Código PHP:
$link_db1=mysql_connect(); // la conexión de la BD1
$link_db2=mysql_connect(); // la conexión de la BD2

mysql_select_db("nombre de la BD",$link_db1); // seleccionas la BD de la conexión 1
mysql_select_db("nombre de la BD",$link_db2); // seleccionas la BD de la conexión 2
// Se selecciona es la BD de la conexión de link usado en el 2º parámetro .. 

$consulta_db1=mysql_query("SQL ...",$link_db1); // Ejecutar consulta en la conexión 1 y BD 1.
$consulta_db2=mysql_query("SQL ...",$link_db2); // Ejecutar consulta en la conexión 2 y BD 2.


// y tus mysql_fecht_array() o lo que necesites de $consulta_db1 o $consulta_db2 

// etc código y ... 

$otra_consulta_db1=mysql_query("SQL ...",$link_db1); // Ejecutar consulta en la conexión 1 y BD 1.

// y tus mysql_fecht_array() o lo que necesites de $otra_consulta_db1 o $consulta_db2 
El "truco" está en usar SIEMPRE el $link de conexión y que este ha de ser diferente en todas las BD q uses .. Si solo usas una conexión a una sola BD .. puedes omitirlo usarlo ... pero si usas mas de una a la vez necesitas usarlo SIEMPRE.

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 18:00.