Imagen de bea

Conectarse a varias bases de datos y crear tablas temporales

1. Conectarse a otra base de datos
Para acceder a múltiples bases de datos, basta con indicar en el fichero settings.php las bases de datos deseadas y luego en el correspondiente módulo, fichero.. y por último realizar correctamente las conexiones y desconexiones.

1. Indicar las bases de datos en settings.php. Habrá que sustituir la siguiente línea de código:
<?php
$db_url = 'mysql://user:contraseña@localhost/nombre_base_datos';
?>
por otras donde se indicaran cúales son: Por ejemplo la de por defecto y la secundaria.
<?php
$db_url['default'] = 'mysql://user:contraseña@localhost/nombre_base_datos_1';
$db_url['secondary'] = 'mysql://user:contraseña@localhost/nombre_base_datos_2';
?>

2. Realizar las conexiones. Para acceder a la base de datos por defecto no abrá que realizar ningún cambio, únicamente cúando se desee conectar al resto.
Por ejemplo cuando deseemos pintar una consulta de la tabla 'secondary' abrá que añadir el siguiente código:
<?php
db_set_active('secondary'); //conectarse a la base de datos
$consulta=db_fetch_object(db_query("SELECT * FROM {tabla} WHERE ..")); //realizar la consulta de la tabla que está en la base de datos secondary
print_r ('pintar el resultado...'.$consulta); //pintar la consulta o lo que se desee realizar con ella..
db_set_active ('default'); //volver a conectarse a la base de datos por defecto.
?>

2. Crear tablas temporales
Para crear tablas temporales es necesario usar la function db_query_temporary de drupal.

Los dos parametros de ésta fución son los siguientes:
db_query_temporary($query, $table)

  • $query: Es un array que contiene una consulta a alguna tabla. El resultado de ésta consulta será lo que se añada a la tabla temporal.
  • $table: Nombre de la tabla temporal que se desea crear

Un ejemplo podría ser el siguiente:
<?php
$query= "SELECT * FROM {node} WHERE nid>40"; //Una consulta..
$tabla_temporal=db_query_temporary($query, 'nombre_tabla_temporal'); //introduzco el resultado de la anterior consulta en una tabla temporal: 'nombre_tabla_temporal'
?>
La tabla ya está creada y completa, el acceso a ella es tan simple como a cualquier otra.

Comentarios

victor

pero en que parte se pone el codigo para la segunda base de datos

Todavía estamos montando esta cocina con Drupal, así que probablemente más de un detalle esté sin acabar en esta web

Inicio de sesión

Navegación

Comentarios recientes

Nuevos

  • fernando
  • dsevila
  • zialdoka
  • ek10
  • juanramonperez