Как получить доступ к внешней базе данных в drupal?


2

Я хочу получить значения текущей базы данных drupal и значений из внешней базы данных в одном файле шаблона. Как я могу достичь этого

4

Сначала вам нужно настроить внешнюю базу данных как вторую базу данных в settings.php.

 $databases = array (
  'default' => 
  array (
  'default' => 
  array (
   'database' => 'standard_db', 
   'username' => 'username', 
   'password' => 'password', 
   'host' => 'localhost', 
   'port' => '', 
   'driver' => 'mysql', 
   'prefix' => '', 
  ), 
), 
  'external' => 
  array (
  'default' => 
  array (
   'database' => 'external', 
   'username' => 'username', 
   'password' => 'password', 
   'host' => 'db.external.com', 
   'port' => '', 
   'driver' => 'mysql', 
   'prefix' => '', 
  ), 
), 
); 

Затем перед выполнением запросов к базе данных необходимо установить активную базу данных. В этом примере, чтобы переключиться на внешний вам необходимо выполнить db_set_active('external');

Если вы хотите переключиться обратно в базу данных по умолчанию, вы выполняете db_set_active();

Пример кода для переключения на и запрос внешней базы данных:

db_set_active('external');$ query = db_select("your_table_name", "t"); 
 $query->addField("t", "field_name");$ result = $query->execute(); 
while ($ row = $result->fetchAssoc()){ 
  drupal_set_message($ row['field_name']); 
} 

db_set_active();