2011-01-06 14 views
5

¿Cómo se obtiene el nombre de la base de datos de Magento?En Magento, ¿cómo se obtiene el nombre de la base de datos?

He visto funciones como la siguiente que puede obtener el nombre de la tabla.

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

tenía la esperanza de que hubo algún tipo de función como esta:

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

Gracias de antemano por cualquier idea.

Respuesta

15

Cada módulo puede especificar su propia conexión, por lo que es correcto hacerlo a través de un modelo.

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

Si usted está interesado sólo en el valor por defecto de una manera ligeramente más eficiente podría ser:

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

El modelo es la forma en que quiero ir, pero me sale el siguiente error cuando pruebo lo anterior. Error fatal: llamada al método no definido Mage_Sales_Model_Mysql4_Order :: getConnection() – woot586

+3

Inténtalo con 'getReadConnection' o' getWriteConnection' en su lugar. – clockworkgeek

+2

Eso es, solo para referencia futura para cualquiera que lea este cambio $ config = Mage :: getResourceModel ('sales/order') -> getConnection() -> getConfig(); a Mage :: getResourceModel ('ventas/orden') -> getReadConnection() -> getConfig(); – woot586

Cuestiones relacionadas