连接自定义模块中的另一个数据库

时间:2013-02-20 12:40:37

标签: php magento

我在config.xml文件中创建了一个新模块 forumprodposts 我添加了下面的xml。在控制器中我添加了这段代码

$sql    = "SELECT * FROM comments";
$conn   = Mage::getSingleton('core/resource')->getConnection('forumprodposts_read');
$data   = $conn->fetchAll($sql);

但是上面的代码抛出错误,注释不是核心数据库的表。我认为在我的xml中存在一些错误,因此与 prodcomments 数据库的连接没有建立。

<resources>
    <forumprodposts_write>
        <connection>
            <use>prodcomments_database</use>
        </connection>
    </forumprodposts_write>
    <forumprodposts_read>
        <connection>
            <use>prodcomments_database</use>
        </connection>
    </forumprodposts_read>
    <forumprodposts_setup>
        <connection>
            <use>core_setup</use>
        </connection>
    </forumprodposts_setup>
    <forumprodposts_database>
        <connection>
            <host><![CDATA[localhost]]></host>
            <username><![CDATA[username]]></username>
            <password><![CDATA[password]]></password>
            <dbname><![CDATA[prodcomments]]></dbname>
            <model>mysql4</model>
            <type>pdo_mysql</type>
            <active>1</active>
        </connection>
    </forumprodposts_database>
</resources>

1 个答案:

答案 0 :(得分:1)

您命名了数据库资源<forumprodposts_database>,但是告诉您的读/写句柄使用prodcomments_database作为资源。更改<use>节点:

<use>prodcomments_database</use>

<use>forumprodposts_database</use>

应解决此问题。