由于sql错误消息无法安装模块

时间:2013-07-15 16:04:05

标签: php sql magento-1.7

我正在从Magento U在线阅读免费教程,并且已经进入了安装模块的阶段。

目前我花了大约三个小时尝试不同的替代方案来克服Sql错误(在第1行)我不断得到。我甚至删除了Magento特定的函数,并在测试数据库的mysql workbench中运行它,它在那里工作。

安装文件运行,我遇到了

Syntax error or access violation: 1064 You have an error in your SQL syntax;

错误

我还考虑过我的模块中其他地方的文件设置不正确,但我看不出有什么问题。最后我还尝试在Magento中启用更详细的SQL错误消息,但没有运气

我的代码如下

培训/动物/ SQL / training_animal_setup / mysql4安装-0.1.0.php

<?php
$installer = $this;

$installer->startSetup();

$installer->run("
DROP TABLE IF EXISTS{$installer->getTable('training/animal')};
CREATE TABLE {$installer->getTable('training/animal')} (
    entity_id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL DEFAULT '',
    type VARCHAR(255) NOT NULL DEFAULT '',
    edible TINYINT(1) UNSIGNED NOT NULL DEFAULT 1,
    comments TEXT NULL,
    updated_at DATETIME,
    created_at DATETIME
) Engine=InnoDB DEFAULT Charset=UTF8;
");

$installer->endSetup();

培训/动物的/ etc / config.etc

<config>
<modules>
    <Training_Animal>
        <version>0.1.0</version>
    </Training_Animal>
</modules>

<global>
    <models>
        <training>
            <class>Training_Animal_Model</class>
            <resourceModel>training_animal_resource</resourceModel>
        </training>
        <training_animal_resource>
            <class>Training_Animal_Model_Mysql4</class>
            <entities>
                <animal><table>training_animal_entity</table></animal>
            </entities>
        </training_animal_resource>
    </models>

    <resources>
        <training_animal_setup>
            <setup>
                <module>Training_Animal</module>
                <class>Mage_Core_Model_Resource_Setup</class>
            </setup>
        </training_animal_setup>
    </resources>
</global>

<frontend>
    <routers>
        <animal>
            <use>standard</use>
            <args>
                <module>Training_Animal</module>
                <frontName>animal</frontName>
            </args>
        </animal>
    </routers>
</frontend>

我还有其他三个文件

培训/动物/型号/ Mysql4 /动物/ Collection.php

培训/动物/型号/ Mysql4 / Animal.php

培训/动物/型号/ Animal.php

但由于错误消息尚未发布,为了节省空间,如果需要,请告诉我们

1 个答案:

答案 0 :(得分:0)

我认为问题在于这一行:

DROP TABLE IF EXISTS{$installer->getTable('training/animal')};

EXISTS{$installer->getTable('training/animal')}之间添加空格。