php - 如何在magento扩展中创建Mysql表?

标签 php mysql magento

我正在尝试在自定义扩展中创建新表。表未创建或给出任何错误。 这是我的“mysql4-install-0.1.php”文件,位于 local/Pfay/Test/sql/Test_setup/mysql4-install-0.1.0.php 中。

$installer = $this;
$installer->startSetup();
$installer->run("
    DROP TABLE IF EXISTS {$this->getTable('Test')};
    CREATE TABLE {$this->getTable('Test')} (
      `pfay_test_id` int(11) unsigned NOT NULL auto_increment,
      `full_name` varchar(255) NULL ,
      `email` varchar(255) NULL ,
      `question` text NULL ,
      `product_id` int(11) NULL default '',
      PRIMARY KEY (`question_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
        ");
    $installer->endSetup();

这是我在 local/Pfay/Test/etc/Config.xml 中的“Config.xml”文件

<?xml version="1.0"?>
<config>
    <modules>
        <Pfay_Test>
            <version>0.1.0</version>
        </Pfay_Test>
    </modules>
    <frontend>
        <routers>
            <routeurfrontend>
                <use>standard</use>
                <args>
                    <module>Pfay_Test</module>
                    <frontName>test</frontName>
                </args>
            </routeurfrontend>
        </routers>
        <layout>
            <updates>
                <test>
                    <file>test.xml</file>
                </test>
            </updates>
        </layout>
    </frontend>
    <admin>
        <routers>
            <test>
                <use>admin</use>
                <args>
                    <module>Pfay_Test</module>
                    <frontName>admintest</frontName>
                </args>
            </test>
        </routers>
    </admin>
    <adminhtml>
        <layout>
            <updates>
                <test>
                    <file>test.xml</file>
                </test>
            </updates>
        </layout>
        <menu>
            <test translate="title" module="adminhtml">
                <title>Question Answer</title>
                <sort_order>100</sort_order>
                <children>
                    <set_time>
                        <title>Question</title>
                        <action>admintest/adminhtml_index</action>
                    </set_time>
                </children>
            </test>
        </menu>
    </adminhtml>
    <global>
        <models>
            <test>
                <class>Pfay_Test_Model</class>
                <resourceModel>test_mysql4</resourceModel>
            </test>
            <test_mysql4>
                <class>Pfay_Test_Model_Mysql4</class>
                <entities>
                    <test>
                        <table>qs_question</table>
                    </test>
                </entities>
            </test_mysql4>
        </models> 
        <resources>
            <Test_setup>
                <setup>
                    <module>Pfay_Test</module>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </Test_setup>
            <Test_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </Test_write>
            <Test_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </Test_read>
        </resources>
        <blocks>
            <test>
                <class>Pfay_Test_Block</class>
            </test>
        </blocks>         
    </global>
</config> 

我花了 5 个小时试图找到解决方案,但没有成功。它正在数据库的“core_resource”表中插入“test_setup”,但不创建表。请建议一个方法。 提前致谢。

最佳答案

我认为文件名“mysql4-install-0.1.php”有错误。它应该是“mysql4-install-0.1.0.php”。

关于php - 如何在magento扩展中创建Mysql表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27740750/

相关文章:

javascript - php echo 到 Javascript 会产生过度嵌套的 json

php - Bootstrap 3 Navbar 不会在移动设备上折叠

php - 如何获取用户的位置?

php - 如何在(html 表的)底部显示 MySQL 数据库中的 "null"值?

php - 在本地运行 Magento 并出现错误 500

php - Magento ->getSku() 或 getData('sku') 返回空字符串

php - 如何使用 PHP 将 sql 数据按顺序组织

mysql - SQL JOIN - 在 JOIN 期间将一个表中的值映射到另一个表中的等效值

mysql - 回合制游戏的数据库设计

css - 主页上的类别 TreeView / Accordion - Magento 1.9