• Conectarse a varias bases de datos en Drupal

    Drupal nos permite de manera sencilla y elegante la conexión a distintas bases de datos dentro del mismo sitio. Esto ocurre cuando por ejemplo queremos realizar una consulta sobre una tabla que no pertenece a la base de datos por defecto del sitio.

    Para poder realizar esto habrá que transformar la variable $db_url del archivo settings.php en un array de la forma:

       
        $db_url
    ['default'] = 'mysql://drupal:drupal@localhost/drupal';
        $db_url['bd1'] = 'mysql://usuario:contraseña@localhost/basededatos1';
        $db_url['bd2'] = 'mysql://usuario:contraseña@localhost/basededatos2';
       

    Donde $db_url['default']  guarda los parametros de configuracion de la base de datos de la instalacion de nuestro sitio. Podemos especificar tantas bases de datos como  queramos. Ojo tienen que ser del mismo tipo, esto es todas tienen que ser MySql o todas Postgre, pero no una mezcla.

    Para consultar otra base de datos  se hará de la siguiente manera:

       
        //Activamos la base datos en la que queremos realizar la consulta.
        db_set_active('bd1');
        db_query('SELECT * FROM tabla_en_bd1');
        //Volvemos a la base de datos por defecto.
        db_set_active('default');
       

    Hay que asegurarse siempre de volver a activar la base de datos por defeto antes de volver a hacer otras llamadas a funciones de Drupal, de lo contrario apereceran errores de tablas no encontradas.

     

    Share this post

    Curso de Drupal


    Sobre Nosotros

    Mediaglobe Innova, empresa creada en Málaga, se presenta como un grupo joven de ingenieros y profesionales dedicados a la investigación, diseño, desarrollo y aplicación de tecnologías de la información para la innovación en la empresa.

    Últimos Tweets

    Facebook