如何检测我在drupal中连接的数据库类型(使用php代码)?我正在尝试编写一个模块,该模块公开了一些仅适用于postgres或sql server的数据库功能。目前,我是通过尝试检测数据库版本来实现的,因为每个数据库的语法似乎不同,但它看起来不是很强大。是否有一个PHP函数会报告这个?
答案 0 :(得分:2)
您应该使用全局变量:$databases
并检查驱动程序值。
global $databases;
dpm($databases);
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');