我在Magento(1.7.0.2)中编写了自己的模块,该模块使用自己的数据库表。数据库表是通过模块中的安装脚本创建的,只需执行
即可$installer = $this;
$installer->startSetup();
$installer->run("
CREATE TABLE IF NOT EXISTS [...]
");
$installer->endSetup();
我在一列中犯了一个错误,在其上声明了错误的数据类型(int(11)
而不是decimal (11,4)
),导致值“10.10”存储为“10”。
现在,当我通过phpmyadmin或更新脚本更改此列的数据类型时,数据类型在我的表中完全更改,仍然Magento将值保存为旧数据类型,导致值“10.10”存储为“ 10.0000" 。
当我通过phpmyadmin输入值“10.10”时,它会被正确存储。但是当我尝试通过
添加该值时Mage::getModel('mymodule/mymodel')->setMyAttribute("10.10")->save();
它仍然以数据库中的“10.0000”结尾。
之前我遇到过这个问题,并且只能通过在创建该列时添加具有正确数据类型的新列来修复它。
似乎Magento有自定义表数据类型的某种兑现机制,我似乎无法在数据库中的任何地方找到它。
对此有任何帮助将不胜感激!