Drupal: Подключение и использование нескольких баз

Здравствуйте.

Сегодня я коснусь вопроса подключения нескольких баз данных в системе Drupal 7. Почему именно Drupal 7? Да потому, что в ней стало очень просто это делать, встроенными средствами системы. То есть мы можем подключить в системе одновременно несколько баз и использовать их в процессе работы.

Один из примеров такой работы - это модуль  DBTNG, который позволяет мигрировать структуру и данные между различными базами данных (к примеру с SQLite на MySQL). Также возможно использовать базы данных, созданные не для CMS Drupal. В этой статье мы рассмотрим как подключить две базы, а также как с ними работать.

Подключаем две базы

Реадктируем файл settings.php в папке sites/default

<?php
$databases = array (
  'default' =>
  array (
    'default' =>
    array (
      'database' => 'drupal1',
      'username' => 'root',
      'password' => '<ваш-пароль>',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),'custom' =>
  array (
    'default' =>
    array (
      'database' => 'drupal2',
      'username' => 'root',
      'password' => '<ваш-пароль>',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',
    )
  )
);
?>

 


Используем базы в своем коде

Используем подключенные базы в коде своего модуля или темы. В процессе работы Drupal использует конфигурацию default. Таким образом, если нам нужно использовать базу, подключенную вручную, мы делаем активной требуемую конфигурацию и выполняем нужные операции.

<?php
db_set_active('custom');
$result = db_query("SELECT nid, title, created FROM {node} ORDER BY created ASC LIMIT 0, 10");
// $result содержит данные запроса к базе данных, подключенной вручную
db_set_active('default');
$result = db_query("SELECT nid, title, created FROM {node} ORDER BY created ASC LIMIT 0, 10");
// $result содержит данные запроса к основной базе drupal 7
?>

 

Теперь мы сможем подключать базы данных других систем (Wordpress, Joomla! и т.д.)

 

Тэги: 

There is 1 Comment

Страницы

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <s> <u> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <hr> <dd> <sub> <sup>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Строки и параграфы переносятся автоматически.
CAPTCHA
Защита от СПАМ ботов. Подтвердите, пожалуйста, что вы человек.
3 + 0 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.