【问题标题】:Unable To Save Data In MySQL From A Custom Magento Module无法从自定义 Magento 模块在 MySQL 中保存数据
【发布时间】:2012-05-30 12:12:41
【问题描述】:

我正在为 Magento 1.7.0 制作一个自定义模块。我在尝试将数据插入 MySQL 时遇到问题。我从会话中获取用户信息如下:

$customer = Mage::getSingleton('customer/session')->getCustomer(); 
$user_id = $customer->getId();

$user_id 现在携带登录到我的 Magento 系统的当前用户的ID

基本上问题是,当我尝试将上述 ID 保存在我的自定义表中时,保存在我的表中的值始终为 0

以前我在尝试保存另一个整数值时遇到了这个问题,我通过将 MySQL 表列的数据类型从 int(10) 更改为 tinyint(4) 解决了这个问题,但在这种情况下,我不能为用户这样做身份证。

$model= Mage::getModel('voter/competetion')
    ->setDesignid($designId)
    ->setUserId($user_id)
    ->setVote($vote)
    ->setStartdate($startDate)
    ->save();

MySQL的列名和安装sql脚本如下:id、designid、user_id、vote、startdate、enddate

$installer = $this;
$installer->startSetup();

$prefix = Mage::getConfig()->getTablePrefix();

$installer->run("
    CREATE TABLE IF NOT EXISTS ".$prefix."vote_competetion (
        id int(10) NOT NULL AUTO_INCREMENT,
        designid int(10) NOT NULL,
        user_id int(10) NOT NULL,
        vote tinyint(1) NOT NULL,
        startdate datetime NOT NULL,
        enddate datetime NOT NULL,
        PRIMARY KEY (id),
        FOREIGN KEY (designid) REFERENCES ".$prefix."vote_design(id)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
");

Mage::getModel('core/url_rewrite')->setId(null);
$installer->endSetup();

我的 setter 方法名称有问题吗?所有其他值都被正确保存。我真的不知道该怎么办。请帮忙。

感谢所有帮助。

谢谢!

【问题讨论】:

    标签: php mysql zend-framework magento orm


    【解决方案1】:

    如果你从一开始就没有 user_id 在表中,你应该清除缓存,因为 Magento 保持它的结构缓存并且不会设置任何新的列数据。

    【讨论】:

    • 谢谢,这是完美的答案!我会很感激的!
    【解决方案2】:

    您在命名用户 ID 字段时出错。在表中它被命名为 userid,所以在你的代码中你应该这样称呼它:

    $model= Mage::getModel('voter/competetion')
        ->setDesignid($designId)
        ->setUserid($user_id) // notice lowercase "i" here
        ->setVote($vote)
        ->setStartdate($startDate)
        ->save();
    

    或者您可以将表中的字段从 userid 重命名为 user_id

    【讨论】:

    • 那是我的错,我在粘贴问题中的 SQL 时出错了。 phpMyAdmin 中的列名实际上是user_id。我已经编辑了问题。
    • 它仍然无法正常工作,问题仍然存在。感谢您的回答。
    猜你喜欢
    • 2013-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多