【发布时间】:2017-04-20 06:45:37
【问题描述】:
Drupal 7 已安装并与名为“DrupalDB”的数据库一起正常工作。另一个数据库“CustomDB”包含一个表。 如何在 drupal 7 中连接“CustomDB”?
【问题讨论】:
标签: php mysql drupal-7 database-connection
Drupal 7 已安装并与名为“DrupalDB”的数据库一起正常工作。另一个数据库“CustomDB”包含一个表。 如何在 drupal 7 中连接“CustomDB”?
【问题讨论】:
标签: php mysql drupal-7 database-connection
你可以在 Drupal 7 安装的地方看到settings.php 文件(存储数据库信息的地方)。在那里你可以看到这样的数组。
$databases = array (
'default' =>
array (
'default' =>
array (
'database' => 'db-name',
'username' => 'db-username',
'password' => 'db-password',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
),
);
要允许模块快速连接到其他数据库,您需要向 $databases 数组添加额外信息:
$databases['CustomDB']['default'] = array (
'database' => 'CustomDB',
'username' => 'CustomDB-username',
'password' => 'CustomDB-password',
'host' => 'localhost',
'driver' => 'mysql',
);
可以看到,这段代码定义了另一个由数组键CustomDB标识的数据库。所以当你需要在你的模块中查询这个其他数据库时,你必须使用这个函数来切换到它的连接:
db_set_active('CustomDB');
你必须关闭它并恢复到默认的数据库连接,以便Drupal 能够访问其数据
db_set_active();
由于您没有将参数传递给函数db_set_active(),它将切换回默认数据库
【讨论】: