我正在为drupal 7网站编写一个包装类,它允许我连接并查询我的phpbb数据库.
连接到外部数据源时(根据drupal文档),您已设置活动数据库,运行查询,然后将活动数据库设置回默认值.
例如
db_set_active('phpbb');
$result = db_query($sql,$args,$opts);
db_set_active();//back to default
Run Code Online (Sandbox Code Playgroud)
但有没有办法使用drupal的数据库包装器来创建一个全新的连接,可以永久设置到新的数据库,而无需这样做来回切换废话?当然,我们可以同时处理与多个数据库的连接.
我做了一些谷歌搜索,但还没有发现任何人试图这样做.
tht*_*tas 12
典型.发布后5分钟我想出来......所以,对于未来的googlers:
基本上,您不使用db_query,而是在连接上运行查询而不设置活动链接.
您可以通过查看db_query的工作原理来解决这个问题:http://api.drupal.org/api/drupal/includes--database--database.inc/function/db_query/7
所以它看起来像这样:
$target='default';
$key = 'phpbb';
$phpbb = Database::getConnection($target,$key);
$result = $phpbb->query($sql,$args,$opts);
Run Code Online (Sandbox Code Playgroud)
这假设您在settings.php中配置了一个数据库,如下所示:
$databases['phpbb']['default'] = array(
'driver' => 'mysql',
'database' => 'forum',
'username' => 'username',
'password' => 'password',
'host' => 'mysql.host.com',
'prefix' => 'phpbb3_'
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11833 次 |
| 最近记录: |