Для подключения к 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');
Спасибо за помощь
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();