cakephp尝试更新已存在记录ID的MySQL记录

时间:2012-02-09 22:51:30

标签: php mysql cakephp model

我正在为模型保存多条记录,如果company_id已经存在,我想更新现有记录。

我在模型中使用此代码:

function beforeSave() {

        $found = $this->find("first",array(
                "recursive" => -1,
                "conditions" => array("company_id" => $this->data['Osm']['company_id'])));
        if(isset($found))
        {
            $this->data['Osm']['id'] = $found['Osm']['id'];
        }
        return true;
    }

但是我收到以下错误:错误:SQLSTATE [23000]:完整性约束违规:1062密钥'PRIMARY'重复输入'60'

我理解为什么我会收到此错误,但我似乎无法强制更新而不是插入。

1 个答案:

答案 0 :(得分:0)

您必须在方法上而不是在数据中设置$id成员变量。请改为$this->id = $found['Osm']['id'];