检测drupal中的数据库连接类型

时间:2014-02-03 08:03:09

标签: php sql-server postgresql drupal drupal-7

如何检测我在drupal中连接的数据库类型(使用php代码)?我正在尝试编写一个模块,该模块公开了一些仅适用于postgres或sql server的数据库功能。目前,我是通过尝试检测数据库版本来实现的,因为每个数据库的语法似乎不同,但它看起来不是很强大。是否有一个PHP函数会报告这个?

3 个答案:

答案 0 :(得分:2)

您应该使用全局变量:$databases并检查驱动程序值。

global $databases;

dpm($databases);

enter image description here

https://drupal.stackexchange.com/questions/48882/how-to-get-database-credentials

答案 1 :(得分:1)

我不完全明白你现在正在尝试的事情,但

db_driver()

返回他当前在Drupal中连接数据库的字符串(例如" pgsql")。

答案 2 :(得分:0)

这可能对您有所帮助。在执行查询之前,使用db_set_active()API设置数据库。

这将帮助您远离错误

<?php

//set your configurations
$db_url['default'] = 'mysql://drupal:drupal@localhost/drupal';
$db_url['mydb'] = 'mysql://user:pwd@localhost/anotherdb';
$db_url['db3'] = 'mysql://user:pwd@localhost/yetanotherdb';

//set the active database and then process your queries in this case you can always knows which database is connected now.
db_set_active('mydb');
db_query('SELECT * FROM table_in_anotherdb');

设置多个数据库

<?php

// ... header of the settings.php file
$db_url = array (
"default" => "mysql://user:pass@host/db",
"second" => "pgsql://user:pass@host/db"
);

db_set_active('second');

参考: https://drupal.org/node/18429