Здравствуйте.
Сегодня я коснусь вопроса подключения нескольких баз данных в системе 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
Спасибо . Полчаса бился с
Спасибо . Полчаса бился с этим settings.php .
Добавить комментарий