Как подключиться к другой базе данных

Иногда приходится подключиться к другой базе данных и забрать из неё какие-либо данные. Сейчас я покажу, как правильно это делать в Drupal 7.

Шаг 1. Для подключения к другой базе данных необходимо создать массив с информацией для подключения к этой базе данных (структура этого массива будет зависеть от драйвера базы данных, используемого для этого подключения):

$other_database = array(
  'database' => 'database_name', // Название базы данных к которой будем подключаться.
  'username' => 'database_user', // Имя пользователя, который будет подключаться к базе данных.
  'password' => '********', // Пароль, используемый для подключения.
  'host' => 'localhost', // Хост, на котором находится база данных.
  'driver' => 'mysql', // Драйвер для подключения к базе данных.
);

Шаг 2. Необходимо добавить информацию для подключения к базе данных. Для этого вызываем следующий метод:

Database::addConnectionInfo('module_name_key', 'default', $other_database);

Здесь в данный метод в качестве первого параметра передаем ключ базы данных, в качестве второго параметра - имя целевой базы данных и в качестве третьего параметра - информацию для подключения к базе данных (ее мы создавали в предыдущем шаге).

Шаг 3. Необходимо сделать базу данных активной, для этого вызываем функцию db_set_active($key = 'default') и в качестве параметра передаем ключ, который мы передавали первым параметром в метод Database::addConnectionInfo($key, $target, $info):

db_set_active('module_name_key');

Теперь мы переключились на другую базу данных и можем работать с ней. После завершения работы с данной базой данных, важно переключиться назад на базу данных по умолчанию, для этого необходимо вызвать функцию db_set_active($key = 'default') без передачи в нее параметров:

db_set_active();

Комментарии (0)