Magento连接到两个数据库


magento connections to two databases

我在 magento 中遇到了问题。 我想用 magento 连接两个数据库。一个数据库将是主数据库,另一个数据库将用于存储。我不知道该怎么做。此时我的连接已在文件应用程序/etc/local.xml.....我的本地.xml如下请帮忙 假 [Mysql4]]> 1

可能有一个比我实现的更优雅的解决方案,但我的方法有效。我为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);
}

如果您遇到特定问题,请告诉我。