¿Quieres registrarte?

Conectarse a 2 bases de datos con PHP alternativamente

Por: NeoCesar
1 de Octubre del 2008
508 de clabLevel
Otros artículos de NeoCesar
4,119 visitas
php

Cuando tenemos una página enlazada a la base de datos del servidor, pero queremos hacer pruebas en nuestro servidor remoto, nos encontramos con el problema de cambiar los datos de conexión, ya sea en tu archivo de conexión si lo tuvieras (muy recomendable) o cambiar los datos en cada pagina que llame al dicho archivo por otro que contenga los datos de tu servido local, es decir el problema se presenta como algo así:

Tienes esta linea para conectarte a tu servidor remoto

Código :

require_once('Connections/conexion_remota.php'); 

El cual esta llamando a un archivo con mas o menos el siguiente esquema

Código :

<?php 
$hostname='tu.servidor.remoto'; 
$username='usuario_remoto'; 
$password='password_remoto'; 
$dbname='base_de_datos'; 
 
$base = mysql_connect($hostname,$username, $password) OR DIE ('No puedo conectarme a la base de datos! Inténtelo nuevamente.'); 
?>

Si quisieras conectarte a otra base en vez de esta como ya lo dije arriba o bien cambias la linea del include para llamar a otro archivo quedando algo como

Código :

#require_once('Connections/conexion_remota.php'); 
require_once('Connections/conexion_local.php'); 

Con la consiguiente creación del archivo de conexión local, sin embargo existe otra manera de evitar todo este engorroso procedimiento. Cada vez que deseamos conectarnos a la base local, en vez de la remota, podemos usar este código. Lean los comentarios:

Código :

<?php 
$hostname='tu.servidor.remoto'; 
$username='tu_usuario_remoto'; 
$password='tu_password_remoto'; 
 
$hostname2='localhost'; //puede ser reemplazado por el nombre de tu servidor local si fuera otro nombre
$username2='tu_usuario_local'; 
$password2='tu_password_local'; 
 
$dbname='tu_base_de_datos'; 
#Para efectos del ejemplo supondremos que es la misma base de datos en ambas bases de datos tanto la remota como la local 
 
$conex_remota = @mysql_connect($hostname,$username, $password); 
#notese el @ antes del comando mysql_connect para evitar que arroje mensaje de error de PHP 
 
if (!($conex_remota)) { 
    $conex_local = @mysql_connect($hostname2,$username2, $password2) OR DIE ('No puedo conectarme a la base de datos local! Intentelo nuevamente.'); 
} 
mysql_select_db($dbname); 
?>

Espero les sirva este pequeño aporte. Con algunas pequeñas modificaciones podría servir para conectarse a una segunda base de datos remota, en vez de la local, en caso la base principal no pueda ser accesible.

Enviar a twitter Enviar a facebook


También te interesa


Etiquetas php

Comentarios | Enviar un comentario
no entiendo que de especial tiene eso, ya que tu "tip" es como hacer un tip para bajarte la cremallera al orinar
algo trivial
Por: dani-blog
yo no estoy de acuerdo, dani, yo soy novato y por ejemplo yo no sabia esto y me va a servir

o es que tu quieres que para los novatos no haya tips?
Por: feliz-blog
A mi si me sirvió bastante no todos somos unos expertos en php, antes tenía que comentar una linea para poder conectarme localmente y viceversa.

Lo que no entiendo es por que omitir el error de conexión en la base de datos remota usando @
Por: Alejandro-blog
Es par que al momento que pruebes la base de datos en local no te salga una linea de error de PHP que te indica que no pudo conectarse a la base remota, el hecho de ver esta linea no afecta en nada , el desarrollo de la posible prueba que estuvieras realizando de tu pagina PHP, cuestion de estetica podria decirse
Por: NeoCesar
dani, es cierto, deben haber tutoriales para gente menos avanzadas ¿ya no ta acuerdas cuando eres un novato y apenas podías conectarte a una DB?

bien por ti Neo ;)
Por: Inyaka
no veo la necesidad de hacer todo eso
Por: sin relevancia-blog
solo buen estilo.. nada de utilidad
Por: TuConciencia-blog
lo de la @ no sólo es por el hecho de que quede feo que aparezca el error. Si queremos mandar un header (cookies, sesiones...) después del error no nos dejaría hacerlo por haber imprimido ya caracteres en pantalla.
Por: daniouyea-blog
Feisima solucion.
Por: Fabian Ramirez-blog
compre una pagina de musica muy buena con bases de dato y no entiendo nada :(
Por: david-blog
Contame una de vaquero, que sentido tiene eso que has echo, no le veo la gracia.
Por: cheperobert-blog

Anonymous :

Contame una de vaquero, que sentido tiene eso que has echo, no le veo la gracia.
la verdad si no van a aportar nada nuevo o util deberian de abstenerse de postear.
Por: NeoCesar
lo q has posteado es un insulto man... si te sentias aburrido ps te huvieses puesto a jugar
Por: Anonymous -blog
La verdad es que ese mentado Dani y el cobarde de Anonimus-Blog, son unos pesados que no saben nada de compartir, y para que mejor que se pongan hacer papitas y las vendan en el centro, por que no saben nada de lo que significa ayudar a los de abajo... eso tontos son unos egoistas que nada mas ven por si mismos, FELICIDADES...NEO Cesar... cualquier cosa para compartir es buena, por cierto me ayudo mucho tus post.
Por: Aldo Cervantes-blog
No veo nada estupido este código... por mi parte a mi me da pereza tener que recordar que tengo que cambiar el archivo de conección a la base de datos para que me funcione en local y luego en remoto. Este código ayuda a olvidarme por completo de la conección... la hago cuando este empezando un proyecto y luego la vendre a ver nunca más =D
Por: Arka-blog
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.