В Magento как вы получаете имя базы данных? - PullRequest
6 голосов
/ 06 января 2011

Как вы получаете имя базы данных от Magento?

Я видел функции, подобные приведенной ниже, которые могут получить имя таблицы.

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

Я надеялся, что существует какая-то функция, подобная этой:

Mage:: getSingleton ('core / resource') -> getDatabaseName ();

Заранее благодарим за любые идеи.

Ответы [ 3 ]

16 голосов
/ 06 января 2011

Каждый модуль может указать свое собственное соединение, поэтому вы можете использовать модель.

$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');
3 голосов
/ 30 мая 2013

Чтобы получить имя БД, попробуйте

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

См. Как получить подробную информацию о базе данных magento

1 голос
/ 27 ноября 2018

Всегда возможно получить текущее соединение из 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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...