Для подключения к MYSQL - Как получить доступ к массиву базы данных в setting.php


Мне нужно подключиться к своей базе данных в php-файле в drupal 7. Каждый раз, когда я перехожу с локального сервера на сервер разработки, мне приходится менять свою базу данных и хост. Я видел файл setting.php, в котором есть массив базы данных.

$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'my_db',
      'username' => 'root',
      'password' => '',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),
);

Как мне использовать этот массив базы данных в drupal 7 для подключения к базе данных

$con = mysqli_connect('localhost','root','','my_db');

Спасибо за помощь

Author: kiamlaluno, 2014-03-28

1 answers

Если вы хотите получить доступ к базе данных Drupal из отдельного скрипта.

Во-первых, подумайте, можете ли вы вместо этого поместить PHP-код в модуль Drupal.
Во-вторых, рассмотрите возможность начальной загрузки Drupal в вашем PHP-скрипте

/**
 * Root directory of Drupal installation.
 */
define('DRUPAL_ROOT', '/var/www/drupal');

// Bootstrap to database level for db api
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_DATABASE);

Затем вы можете использовать API базы данных Drupal для запроса содержимого из базы данных Drupal.

В-третьих, если требуется подключение к другой базе данных, рассмотрите возможность определения другой базы данных в settings.php и переключается на цель база данных с использованием db_set_active

// Settings.php
$databases['default']['default'] = array(
  'driver' => 'mysql',
  'database' => 'drupal7',
  'username' => 'drupal_user',
  'password' => 'drupal_password',
  'host' => 'localhost',
  'prefix' => '',
);

$databases['other_database']['default'] = array(
  'driver' => 'mysql',
  'database' => 'other_database',
  'username' => 'other_database_user',
  'password' => 'other_database_password',
  'host' => 'localhost',
  'prefix' => '',
);

Затем вы можете переключаться между базами данных с помощью db_set_active

// Query other database
db_set_active('other_database');
// $query = db_select('my_table'); // e.g
// Return to default database
db_set_active();
 2
Author: David Thomas, 2014-03-28 04:17:09