2009-07-10 35 views
2

基本上,我想在MySQL中实现与ON DUPLICATE KEY一样的功能。Cakephp模型类中的save方法是否可以选择创建和更新记录?

这里是一个人为的例子:

 
$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); 

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

回答

10

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

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

更新

这里的the supporting documentation

创建或更新由 模型的id字段控制。如果$ Model-> id设置为 ,则更新此主键 的记录。否则创建一个新记录 。

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

+0

谢谢,彼得。你达人。 – allyourcode 2009-07-10 03:20:21