Programación php
Email: Password:


¡Regístrate gratis! | ¿Has perdido tu password?

Home
Blog

En él que podrás informarte de todas las noticias relacionadas con el posicionamiento de páginas web.

Ir al Blog de posicionamiento web



Foro de programación en PHP

Responder el mensaje

Interactuar con varias bases de datos mysql

Autor: Manuel González
Publicado: 26-7-2010 06:52 PM
Cordial saludo.

Necesito ayuda con respecto al siguiente inconveniente:

Tengo un form con los campos usuario y clave que son enviados y consultados de la base de datos maestra.

Dependiendo del usuario la tabla tiene un campo adicional que se llama instituto.

Ejemplo:
Se conecta el usuario Pepito con clave 1234 del instituto XYZ, dicho usuario es validado y se recupera la variable instituto (para este caso XYZ).

Los institutos son a su vez otras bases de datos.

Lo que necesito es que cuando se recupere la información del campo instituto se desconecte de la base de datos maestra y se active la base de datos del instituto en cuestión.

He tratado de hacerlo con un include que me guarde los datos de conexión de todas las bases de datos pero ha sido imposible, siempre me genera error:

---Config.php---
<?php
function col_xyz(){
$host = "localhost"; // el host de la base de datos
$user = "root"; // usuario de la base de
$contra = ""; // contraseña de la base de datos
$base = "xyz"; // Base de datos

$conexion= mysql_connect($host,$user,$contra)or die ('Ha fallado la conexión: '.mysql_error());
mysql_selectdb($base,$conexion);
}

function col_abc(){
$host = "localhost"; // el host de la base de datos
$user = "root"; // usuario de la base de
$contra = ""; // contraseña de la base de datos
$base = "abc"; // Base de datos

$conexion= mysql_connect($host,$user,$contra)or die ('Ha fallado la conexión: '.mysql_error());
mysql_selectdb($base,$conexion);
}
?>

---Seleccion.php----
<?php

//Recupera la variable del form principal
$instituto = $_POST['cole'];

function consulta(){
//Hago una consulta de prueba con la conexión invocada
$sql = mysql_query("SELECT * FROM datos",$conexion);
//$resultado = mysql_query($consulta,$conexion) or die('Error al consultar: '.mysql_error());
while ($row = mysql_fetch_row($sql)){
echo "$row[1]<br>";
echo "$row[2]<br>";
}
mysql_freeresult($sql);
mysql_close($conexion);
}

//Incluyo el archivo de configuración de conexiones a bdd
include("includes/Config.php");

if $instituto=='col_abc'{
//Llamo la función que está almacenada en Config.php
col_abc();

//Invoco la consulta
consulta();
}else{
col_xyz();
consulta();
}
?>

Y al correr la web me arroja los siguientes errores:

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\AppServ\www\pruebax\index2.php on line 7

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\pruebax\index2.php on line 9

Warning: mysql_freeresult(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\pruebax\index2.php on line 13

Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in C:\AppServ\www\pruebax\index2.php on line 14
Autor: Postg
Publicado: 04-8-2010 12:48 AM
Quieres dos bases de datos distintas, o dos tablas?