在Magento中,您如何获得数据库名称?

时间:2011-01-06 12:03:18

标签: database magento

如何从Magento获取数据库名称?

我见过类似下面的函数可以得到表名。

  

$ orderItemTable = Mage :: getSingleton('core / resource') - > getTableName('sales / order_item');

我希望有这样的功能:

  

法师:: getSingleton( '芯/资源') - > getDatabaseName();

提前感谢任何想法。

3 个答案:

答案 0 :(得分:16)

每个模块都可以指定自己的连接,因此您可以通过模型进行操作。

$config = Mage::getResourceModel('sales/order')->getConnection()->getConfig();
// $config is an array
$dbname = $config['dbname'];

如果您只对默认值感兴趣,可能会采用稍微有效的方法:

$dbname = (string)Mage::getConfig()->getNode('global/resources/default_setup/connection/dbname');

答案 1 :(得分:3)

要获取数据库名称,请尝试

Mage::getConfig()->getResourceConnectionConfig('default_setup')->dbname;

请参阅How to get magento database details

答案 2 :(得分:1)

始终可以从Mage :: getSingleton('core / resource')-> getConnection('core_write')获取当前连接,特别是如果仅使用一个数据库的话。

$configArray = Mage::getSingleton('core/resource')->getConnection('core_write')->getConfig();
$db = $configArray['name'];

但是它与zend适配器Zend_Config一起使用

// Create the object-oriented wrapper upon the configuration data
$config = new Zend_Config($configArray);
$db = $config->get('dbname');