如何在 drupal 7 中连接外部数据库?

how to connect external database in drupal 7?

Drupal 7 已安装并且可以正常使用名为 "DrupalDB" 的数据库。另一个数据库 "CustomDB" 包含一个 table。 如何在 drupal 7 中连接 "CustomDB"?

你可以在 Drupal 7 installation.in 那里看到 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(),它会切换回默认数据库