我通常会这样将新数据保存到数据库中:
$this->MyTable->set(array(
'id' => $id,
'code' => $temp_code,
'status' => $status,
'age' => $age,
'location' => $location,
'money' => $money
));
$this->MyTable->save();
如果数据库中已经存在该ID,我会按照以下方式更新其对应的字段:
$this->Adtweet->id = $id;
$this->Adtweet->saveField('code', $temp_code);
$this->Adtweet->saveField('status', $status);
有更好或“正确”的方法吗?
当我尝试输入已存在的ID并使用set
函数时,我会出现以下SQL完整性错误:
(错误:SQLSTATE [23000]:完整性约束违规:1062主键“ PRIMARY”中存在重复条目“ 150245925”)
如何编写一个函数来处理重复条目而不返回错误?
$isIdExists = $this->ModelName->find('first', array( 'conditions' => array('ModelName.id' => $id)
---if ($isIdExists) { $this->ModelName->create(); }
- tranteauto_increment
了吗? - Julian Hollmann$this->ModelName->twitter_user_id = $twitter_user_id;``$isIdExists = $this->ModelName->exists();
在这种情况下,$isIdExists
返回 false。但是从 phpmyadmin 中我可以看到记录是存在的。 - trantepublic $primaryKey ='twitter_user_id';
。 - Julian Hollmann