Drupal 7: Daten via Modul aus einer anderen Datenbank laden

Autor: Sven Culley am Sun, 05.10.2014 - 21:59

In diesem Tutorial möchte ich zeigen, wie Daten über eine zusätzliche Datenbank geladen und ausgegeben werden können. Dieses kann alles in einem eigenen Modul geschehen. Bei Fragen oder Problemen bitte die Formularfunktion oder direkt eine E-Mail schreiben.

example.info

name = Example
description = Example external database data load
core = 7.x
version = 7.x-1.x

example.module

$other_database = array(
  'database' => 'databasename',
  'username' => 'username',
  'password' => 'password',
  'host' => 'localhost',
  'driver' => 'mysql',
);
Database::addConnectionInfo('example', 'default', $other_database);

/**
 *
 */
function example_menu() {
  $items = array();
  $items['example'] = array(
    'title' => 'Example',
    'page callback' => 'example_page',
    'access arguments' => array('access content'),
    'type' => MENU_CALLBACK,
  );

  return $items;
}

/**
 * Return the database content on a page
 */
function example_page() {
  // Activate the database connection
  db_set_active('example');

  // Get data from external database
  $results = db_query('SELECT * FROM table_in_other_database');

  // Do something with the data
  // ...
  // ...
  
  // Switch back to default database
  db_set_active();

  return ''; // This has to be replaced with your output
}

Über den Aufruf "http://yourdomain.tld/example" kann auf die Seite zugegriffen werden.