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

使用多个条件更新cakephp中的查询,php,mysql,cakephp,Php,Mysql,Cakephp,我有一个类似这样的问题: Update `pools` set status='2' where `pid`='1' and `uid`='2' 如何在cakephp中转换此查询?i、 e.我想在查询中传递这个和条件,该查询应该更新包含pid='1'和uid='2'的行。UPDATEALL就是您所需要的 $this->Pool->updateAll(array('status'=>2), array('Pool.pid'=>1,'Pool.uid' => 2)); 获取更多文档 如果您已经有

我有一个类似这样的问题:

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

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

UPDATEALL
就是您所需要的

$this->Pool->updateAll(array('status'=>2), array('Pool.pid'=>1,'Pool.uid' => 2));
获取更多文档

如果您已经有了要更新的行的id,那么不需要使用update-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\u id行。

我想这可能会起作用……试试看

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

你试过什么?现在我在用:$this->Pool->updateAll(数组('receipt\u no'=>abc123')、数组('Pool.id'=>9、'Pool.uid'=>23));但is将“abc123”作为字段名,并抛出错误。我确实尝试过,但效果很好!但是,如果我真的这样修改它:$this->Poo->updateAll(数组('receipt\u no'=>abc123')、数组('Pool.id'=>9、'Pool.uid'=>23));它将“abc123”作为列名,并将错误作为未知列。您必须使用类似于数组的Model.field\u name('Pool.receipt\u no'=>'abc123')…因为cakephp查询会根据模型名自动创建表别名。。。试试这个,我肯定就是这样。是的,我确实使用了('Pool.receipt\u no'=>'abc123'),但它将abc123作为字段名。我可以看看数据库表结构吗?不能将值参数作为列,一定是出了问题。创建表如果不存在
pools
id
bigint(11)非空自动增量,
pool\u id
bigint(11)非空,
uid
varchar(20)校对utf8\u unicode\u ci非空,
receipt\u no
varchar(255)核对utf8\u unicode\u ci NOT NULL,不这也不起作用相同的错误它以'abc123'作为字段名我们的cakephp版本是什么?好的,终于起作用了:$this->Poolcontributor->updateAll(数组('receipt\u No'=>“'abc123')、数组('Poolcontributor.pool\u id'=>9,'Poolcontributor.user\u id'=>23));我所做的是将'abc123'转换成了'abc123'.真是一种奇怪的cakephp行为