2012-04-17 139 views
3

我在magento中遇到问题。我想用magento连接两个数据库。一个数据库将成为主数据库,另一个将用于商店。我不知道该怎么办it.By这个时候我的连接是在文件的应用程序的/ etc/local.xml中.....我local.xml中是如下 请帮助 假 [mysql4]]> 到两个数据库的magento连接

+0

http://blog.decryptweb.com/connect-database-magento/尝试此链接 – sulabh 2012-04-17 12:05:24

回答

2

可能有更优雅的解决方案,我已经实现了,但我的方法有效。我为一个osCommerce导入/导出模块做了这个。


/httpdocs/app/etc/config.xml

 <!-- osCommerce db/read/write --> 
     <oscommercedb> 
      <connection> 
       <host>localhost</host> 
       <username>root</username> 
       <password>pass</password> 
       <dbname>oscommerce_database_name</dbname> 
       <model>mysql4</model> 
       <initstatements>SET NAMES utf8</initstatements> 
       <type>pdo_mysql</type> 
       <active>1</active> 
      </connection> 
     </oscommercedb> 
     <oscommercedb_write> 
      <connection> 
       <use>oscommercedb</use> 
      </connection> 
     </oscommercedb_write> 
     <oscommercedb_read> 
      <connection> 
       <use>oscommercedb</use> 
      </connection> 
     </oscommercedb_read> 
     <!-- end osCommerce db --> 

这可让您将模型中调用oscommercedb的能力。上述代码位于<resources>区块内。

现在让我们来看看一个模型。


/httpdocs/app/code/local/Company/Extension/Model/OsCustomers.php

class Company_Extension_Model_OsCustomers extends Mage_Core_Model_Abstract 
{ 

protected $_name = 'customers'; // name of the table 

/** 
* Returns rowset of tables for customers 
* 
* @return Zend_Db_Table_Rowset 
*/ 
public function getAllOscommerceCustomers() 
{ 
    $read = Mage::getSingleton('core/resource')->getConnection('oscommercedb'); 

    $stmt = $read->select(); 

    $stmt->from(array('c' => 'customers')) 
     ->join(array('a' => 'address_book'), 'a.address_book_id = c.customers_default_address_id') 
     ->joinLeft('zones', 'zones.zone_id = a.entry_zone_id') 
     ->join('countries','a.entry_country_id = countries.countries_id', array('countries_iso_code_2')); 

    return $read->fetchAll($stmt); 
} 

如果您遇到特定的问题让我知道。

+0

非常感谢您的帮助。我能够非常轻松地使用您的代码。 – 2012-04-24 07:17:52

+0

谢谢。保持良好的工作 – 2017-01-03 20:16:52