我正在遵循Magento U的免费在线教程,并已进入安装模块的阶段。
目前,我已经花了大约三个小时尝试不同的替代方案来克服我一直遇到的Sql错误(第1行)。我甚至删除了Magento特定的函数,并在测试数据库的mysql工作台中运行它。
安装文件运行,我面临
Syntax error or access violation: 1064 You have an error in your SQL syntax;
错误
我还考虑到,我可能在模块的其他地方错误地设置了一个文件,但我看不出有什么问题。最后,我也尝试在Magento中启用更详细的sql错误消息,但没有任何运气
我的代码如下
Training/Animal/sql/Training_Animal_setup/mysql4-install-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/Animal/Collection.php
训练/动物/模型/Mysql4/Animal.php
训练/动物/模型/Animal.php
但由于错误消息和节省空间,尚未发布它们,如果需要,请让我知道
我认为问题出在这一行:
DROP TABLE IF EXISTS{$installer->getTable('training/animal')};
在EXISTS
和{$installer->getTable('training/animal')}
之间添加一个空格。