禁用表前缀Magento

时间:2013-10-13 23:30:35

标签: php magento magento-1.7

我开发了一个模块来从Magento访问外部数据库,当我在一个干净的Magento安装上测试模块时它工作正常,但是当我在使用表前缀的干净Magento安装上测试它时它失败了,因为它添加了模块上使用的外部表名称的前缀。

有没有办法为模块上使用的所有外部表禁用表前缀?

我希望该模块能够处理带或不带表前缀的安装。我试过添加:

<table_prefix><![CDATA[]]></table_prefix>

在我的模块的config.xml部分,没有任何运气。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

Ox3,一个选项是为您自己的模块创建连接,例如:

<?xml version="1.0"?>
<config>
    <modules>
        <Vendor_Mymodule>
            <version>0.1.0</version>
        </Vendor_Mymodule>
    </modules>
    <global>
        <models>
            <mymodule>
                <class>Vendor_Mymodule_Model</class>
            </mymodule>
        </models>
        <resources>
            <mymodule_write>
                <connection>
                    <use>mymodule_setup</use>
                </connection>
            </mymodule_write>
            <mymodule_read>
                <connection>
                    <use>mymodule_setup</use>
                </connection>
            </mymodule_read>
            <mymodule_setup>
                <connection>
                    <host><![CDATA[localhost]]></host>
                    <username><![CDATA[username]]></username>
                    <password><![CDATA[password]]></password>
                    <dbname><![CDATA[db_name]]></dbname>
                    <model>mysql4</model>
                    <initStatements>SET NAMES utf8</initStatements>
                    <type>pdo_mysql</type>
                    <active>1</active>
                </connection>
            </mymodule_setup>
        </resources>
    </global>
</config> 

然后你可以将它调用到你的代码中:

 $new_conn = Mage::getSingleton('core/resource')->getConnection('mymodule_read');

我希望它有所帮助。干杯!