Foros del Web » Programando para Internet » PHP »

Error al hacer consultas a bases de datos distintas

Estas en el tema de Error al hacer consultas a bases de datos distintas en el foro de PHP en Foros del Web. Hola a todos, tengo un problema. Como servidor de la base de datos tengo MySQL. Tengo 2 bases de datos Prueba1 y Prueba2 En PHP ...
  #1 (permalink)  
Antiguo 24/04/2007, 02:09
 
Fecha de Ingreso: abril-2007
Mensajes: 11
Antigüedad: 17 años
Puntos: 0
Error al hacer consultas a bases de datos distintas

Hola a todos, tengo un problema.

Como servidor de la base de datos tengo MySQL.

Tengo 2 bases de datos Prueba1 y Prueba2

En PHP me he definido 3 archivos.

ARCHIVO INDEX.PHP
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
</head>
<body>
<font size="+2">

<?PHP
require_once("conexion.php");
/*Base de Datos Prueba1*/
$consulta1="SELECT nombre FROM acreedores";
$resultado_consulta=mysql_query($consulta1);
$fila=mysql_fetch_object($resultado_consulta);
echo $fila->nombre;

Como veis la consulta2 es para la base de datos Prueba2, la unica solucion que he encontrado para que me funcione es poner mysql_select_db(Prueba2) en el archivo Index.php. Pero preferiria hacerlo en el archivo CONEXION (lo he hecho y no me va) QUE PUEDO HACER??? POR QUE ME ESTA FALLANDO?

$bd2="invhardware";
mysql_select_db($bd2);
/*PARA LA BASE DE DATOS Prueba2*/
$consulta2="SELECT nombre FROM usuarios";
$resultado_consulta2=mysql_query($consulta2);


$fila2=mysql_fetch_object($resultado_consulta2);
echo $fila2->nombre;


?>
</body>
</html>


El segundo archivo es el que tengo en el require, que es CONEXION. Dicho archivo contiene esto

<?PHP
require_once("../BIBLIOTECA/fx_mysql.php");
$server="localhost";
$bd="pruebas1";
$usr="root";
$pwd="1234";
$con1=db_connect_mysql($server,$bd,$usr,$pwd);
Aqui me gustaria hacer el mysql_select_db(prueba2) PERO NO FUNCIONA.
He probado tambien poner esto
/*
$bd2="Prueba2";
$mysql_select_db($db2); FALLA
*/
/*
$bd2="Prueba2";
$con2=db_connect_mysql($server,$bd,$usr,$pwd) FALLA
y luego al hacer la consulta poner mysql_query($consulta,$con2);
*/

?>


La BIBLIOTECA es esta
<?PHP
function db_connect_mysql($server,$bd,$usr,$pwd)
{
$result = mysql_connect($server, $usr, $pwd);
if(!$result)
exit("fallo al conectarse");
if (!mysql_select_db($bd))
return ("fallo al seleccionar la BD");

return $result;
}
?>
  #2 (permalink)  
Antiguo 24/04/2007, 04:36
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Error al hacer consultas a bases de datos distintas

Algo a lo q está acostumbrada la gente es a obviar en el mysql_query el segundo argumento q es opcional y se refiere al link de conexión q se usará.

Código PHP:
mysql_query($sentencia,$conexion); 
Si tus dos base de datos se loggean con usuarios y claves diferentes lo mejor es q agregues este parametro para q PHP sepa cual de las 2 conexiones utilizar, es decir, descomentar lo q tienes comentado y especificar el link como pongo arriba tanto en el mysql_query como en el mysql_select_db.

Si usas una sola no sé pero si le especificas una base de datos mediante mysql_select_db tendrías q cambiar de una a otra para q se sepa donde va a realizar la consulta o eso creo.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #3 (permalink)  
Antiguo 24/04/2007, 04:37
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Error al hacer consultas a bases de datos distintas

Borren este post, lo añadi sin querer.
__________________
La muerte es un camino que todos debemos recorrer...
  #4 (permalink)  
Antiguo 24/04/2007, 05:29
 
Fecha de Ingreso: abril-2007
Mensajes: 11
Antigüedad: 17 años
Puntos: 0
Re: Error al hacer consultas a bases de datos distintas

mmmm a ver, lo he hecho pero no me va.


En un fichero CONEXION.PHP me he definido las conexiones. Quiero hacer 2 conexiones a 2 bases de datos distintas (dentro de mysql).

require_once("../BIBLIOTECA/fx_mysql.php");
$server="localhost";
$bd="pruebas1";
$usr="root";
$pwd="1234";
$con1=db_connect_mysql($server,$bd,$usr,$pwd);

$bd2="Prueba2";
$con2=db_connect_mysql($server,$bd,$usr,$pwd)

************************************************** *****
Posteriormente en el fichero INDEX.PHP hago las dos consultas

mysql_query($consulta1,$con1);
mysql_query($consulta2,$con2);

PEROOO el problema es que a la base de datos Prueba1 no accede !!!!!!!!!!

***********************
QUE HAGO MAL???? Deberia hacer 2 ficheros CONEXION???? SERIA MEJOR con dos ficheros o con 1?????
  #5 (permalink)  
Antiguo 24/04/2007, 05:32
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Error al hacer consultas a bases de datos distintas

Cita:
Iniciado por JGarciaQ Ver Mensaje
mmmm a ver, lo he hecho pero no me va.


En un fichero CONEXION.PHP me he definido las conexiones. Quiero hacer 2 conexiones a 2 bases de datos distintas (dentro de mysql).

require_once("../BIBLIOTECA/fx_mysql.php");
$server="localhost";
$bd="pruebas1";
$usr="root";
$pwd="1234";
$con1=db_connect_mysql($server,$bd,$usr,$pwd);

$bd2="Prueba2";
$con2=db_connect_mysql($server,$bd,$usr,$pwd)

************************************************** *****
Posteriormente en el fichero INDEX.PHP hago las dos consultas

mysql_query($consulta1,$con1);
mysql_query($consulta2,$con2);

PEROOO el problema es que a la base de datos Prueba1 no accede !!!!!!!!!!

***********************
QUE HAGO MAL???? Deberia hacer 2 ficheros CONEXION???? SERIA MEJOR con dos ficheros o con 1?????
Te fijaste bien?

Código PHP:
$con2=db_connect_mysql($server,$bd,$usr,$pwd
No deberías usar la $bd2 aquí?

Y otra cosa, no es necesario un segundo fichero de conexion, en realidad al hacer includes lo q haces es como añadir tu codigo al script así q es lo mismo tener el código en el mismo fichero q incluir otro. Pero claro es más cómodo tener el código q se usa con regularidad en un archivo para incluirlo solamente en lugar de reescribirlo.

Si no te funciona comprueba los datos de conexión a dicha base de datos.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #6 (permalink)  
Antiguo 24/04/2007, 07:15
 
Fecha de Ingreso: abril-2007
Mensajes: 11
Antigüedad: 17 años
Puntos: 0
Re: Error al hacer consultas a bases de datos distintas

Utilizo tanto $bd2 como $bd y nada.

La "idea" de usar $bd2 era por si "chocaba" con $bd que ya habia usado anteriormente.
En el script de conexion hare las conexiones que deba hacer (en concreto 2 bases de datos)

require_once("../BIBLIOTECA/fx_mysql.php");
$server="localhost";
$bd="pruebas1";
$usr="root";
$pwd="1234";
$con1=db_connect_mysql($server,$bd,$usr,$pwd);
$bd="Prueba2" ;
$con2=db_connect_mysql($server,$bd,$usr,$pwd);



*******************************

En el index.php hago esto:

$consulta1="SELECT nombre FROM acreedores";
$resultado_consulta=mysql_query($consulta1);
$fila=mysql_fetch_object($resultado_consulta);
echo $fila->nombre;

$consulta2="SELECT nombre FROM usuarios";
$resultado_consulta2=mysql_query($consulta2);
$fila2=mysql_fetch_object($resultado_consulta2);
echo $fila2->nombre;

EN PRINCIPIO DEBERIA DE IR !! PERO NO VA, el ERROR QUE DA ES EL SIGUIENTE
******************************

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\PRUEBAS\index.php on line 17
Usuario_01_BD_Prueba2

EL ECHO DE LA SEGUNDA CONSULTA FUNCIONA; PERO EL DE LA PRIMERA NO, ES COMO SI NO REALIZASE LA CONSULTA (en Prueba2 no tengo una tabla acreedores, SOLO LA TENGO EN Prueba1 !! PERO NO ACCEDE A PRUEBA1 !!!!!!!!!

La funcion en azul es la siguiente:

function db_connect_mysql($server,$bd,$usr,$pwd)
{
$result = mysql_connect($server, $usr, $pwd);
if(!$result)
exit("fallo al conectarse");
if (!mysql_select_db($bd))
return ("fallo al seleccionar la BD");

return $result;
}



Por favor dime que no estoy loco !!! es que llevo todo el dia probando y nada de nada !! Muchas gracias
  #7 (permalink)  
Antiguo 24/04/2007, 09:53
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Error al hacer consultas a bases de datos distintas

Cita:
Iniciado por JGarciaQ Ver Mensaje
$consulta1="SELECT nombre FROM acreedores";
$resultado_consulta=mysql_query($consulta1);
$fila=mysql_fetch_object($resultado_consulta);
echo $fila->nombre;

$consulta2="SELECT nombre FROM usuarios";
$resultado_consulta2=mysql_query($consulta2);
$fila2=mysql_fetch_object($resultado_consulta2);
echo $fila2->nombre;
Lo de si estás loco o no no lo voy a cuestionar pero dudo q sea culpa de PHP, seguro q ya estabas loco antes

Sobre el código parece estar correcto pero como te comente no tienes el segundo parámetro opcional de mysql_query. Por defecto PHP escogerá una de las 2 conexiones creadas y tal vez no sea la adecuada.

Yo x mi parte prefiero especificar siempre el link:

$consulta1="SELECT nombre FROM acreedores";
$resultado_consulta=mysql_query($consulta1,$con1);
$fila=mysql_fetch_object($resultado_consulta);
echo $fila->nombre;

$consulta2="SELECT nombre FROM usuarios";
$resultado_consulta2=mysql_query($consulta2,$con2);
$fila2=mysql_fetch_object($resultado_consulta2);
echo $fila2->nombre;

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #8 (permalink)  
Antiguo 27/04/2007, 04:30
 
Fecha de Ingreso: abril-2007
Mensajes: 11
Antigüedad: 17 años
Puntos: 0
Re: Error al hacer consultas a bases de datos distintas

Gracias Lo Probare !!

Un Saludo
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 04:14.