Cakephp模型类中的save方法会选择创建和更新记录吗?

时间:2009-07-10 02:59:05

标签: php cakephp

基本上,我希望在MySQL中实现与ON DUPLICATE KEY相同的功能。

这是一个人为的例子:

$rec = array('Foo' => array(
  'id' => 999,  // Assume there isn't already a record with this id
  'website' => 'google'
));
$this->Foo->save($rec);

// save with different 'website' value
$rec['Foo']['website'] = 'stackoverflow';
$this->Foo->save($rec);

最后一行是否更新了几行创建的记录?

1 个答案:

答案 0 :(得分:10)

如果您致电save(),提供现有id的记录(或任何主键),它将会更新,否则会创建新记录。

所以在你的情况下,是的,它会更新最初在顶部创建的记录。

<强>更新

这是the supporting documentation

  

创建或更新由   模型的id字段。如果$ Model-&gt; id是   设置,具有此主键的记录   已更新。否则新的记录是   创建

根据Model::save()的文档。