使用多个条件更新cakephp中的查询

roc*_*her 2 php mysql cakephp

我有一个查询:

Update `pools` set status='2' where `pid`='1' and `uid`='2'
Run Code Online (Sandbox Code Playgroud)

如何在cakephp中转换此查询?即我想在查询中传递AND条件,该查询应更新包含pid ='1'和uid ='2'的行.

Dip*_*mar 5

UPDATEALL 是你所需要的全部.

$this->Pool->updateAll(array('status'=>2), array('Pool.pid'=>1,'Pool.uid' => 2));
Run Code Online (Sandbox Code Playgroud)

有关更多文档.

http://book.cakephp.org/2.0/en/models/saving-your-data.html#model-updateall-array-fields-array-conditions

如果你已经拥有要更新的行的id,那么不需要使用更新cakephp非常聪明,可以理解它.

例如.

如果你有Pool.id哪一行记录呢.

$this->data['Pool']['id'] = $pool_id;
$this->data['Pool']['uid'] = $pool_uid;
$this->data['Pool']['other_data'] = $pool_otherData;
$this->Pool->save($this->data['Pool']);
Run Code Online (Sandbox Code Playgroud)

上面会自动保存$ pool_id行.