Я разрабатываю модуль, который будет сильно зависеть от запросов к внешней базе данных. Существует ли лучший способ определения и использования подключения к внешней базе данных в модуле?
На этой странице рассказывается, как установить соединение, но не где его разместить в модуле (конкретный хук?), Поэтому мне нужно определить его только один раз. Кроме того, всегда ли нужно делать "db_set_active ('YourDatabaseKey');" или я могу передать аргумент, который будет использовать БД? Я использую Drupal 7.
Ответы:
Нет конкретного места для размещения этого кода (хук или модуль), вы просто помещаете его туда, где вам нужно.
Так что он должен идти перед вашими запросами в другой базе данных и сразу после того, как установить обратно базу данных по умолчанию.
Если весь ваш модуль будет полагаться на внешнюю БД, просто поместите его в начало первой функции, вызываемой для вашего модуля, и в конец последней функции.
Конечно, каждая ваша функция должна выполняться на внешней БД, и ничто не должно запрашивать базу данных по умолчанию без обратного переключения.
Этот следующий код потерпит неудачу:
Вы должны переключаться назад и вперед:
источник
Вы должны будете добавить в
settings.php
расположенный/sites/default/
в следующем синтаксисе// Drupal 6
// Drupal 7
И после этих настроек вы можете использовать db_set_active () для переключения между базами данных.
источник