Comunidad de diseño web y desarrollo en internet online

Conectarse a 2 bases de datos con PHP alternativamente

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.

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate