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

时间:2013-01-25 05:12:25

标签: php mysql cakephp

我有一个类似的查询:

Update `pools` set status='2' where `pid`='1' and `uid`='2'

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

2 个答案:

答案 0 :(得分:5)

UPDATEALL就是你所需要的。

$this->Pool->updateAll(array('status'=>2), array('Pool.pid'=>1,'Pool.uid' => 2));

有关更多文档。

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']);
上面的

将自动保存$ pool_id行。

答案 1 :(得分:0)

我想这可行......试试......

$this->Pool->updateAll(array('status'=>2), array('AND' => array('Pool.pid'=>1,'Pool.uid' => 2)));