0

我正在尝试更新magento中customer_entity的自定义字段我正在使用以下代码:

$customer = Mage::getModel('customer/customer')->load($customerId);

     print_r($customer->getData());
     try {   
                     $customer->setData('field', $flag);
         $insertId = $customer->save()->getId();
             echo "Data successfully inserted. Insert ID: ".$insertId;
                      print_r($customer->getData());
        } catch (Exception $e){
         echo $e->getMessage();  
        }

现在我不明白为什么它没有保存在数据库中,当我写日志时客户数据有更新的值,但是当我尝试在数据库中查看时它没有反映。

任何想法?

编辑:

$write = Mage::getSingleton("core/resource")->getConnection("core_write");
        $sql = "update `customer_entity` set `field` = ".$flag." where`entity_id` =".$customerId;
        $write->query($sql);

此代码具有魅力,但顶部的上述代码确实有效。有没有人有任何想法?

4

3 回答 3

0

第 1 步:- 检查 config.xml 文件中的资源表名称,并清除 /var 文件夹中的缓存文件夹,然后检查。

第 2 步:- 如果第 1 步不起作用,则重新索引您的项目并进行检查。

步骤 3:- 如果步骤 1 和 2 不起作用,请检查您的表引擎类型(如果它是 InnoDB),然后将其更改为 MyISAM 并检查。

更多信息请点击这里

于 2014-01-22T17:43:49.567 回答
0

首先检查以下 1. 检查你在资源模型中的config.xml 中定义的数据库表。2.获取 $flag 的值并检查该字段是否存在。

于 2013-04-08T13:54:26.647 回答
0

尝试清除一次缓存并从 magento 管理员重新索引!希望它有效

于 2013-04-08T11:15:01.407 回答