【发布时间】:2014-06-17 08:30:07
【问题描述】:
我在 cakephp 中写了下面的代码 for and updateAll query like
$this->loadModel('User');
$this->User->updateAll(array('stauts'=>'active'),array());
上面代码等效的SQL查询是这样生成的
UPDATE User SET status='active' WHERE 0 = 1;
当我像下面这样在 cakephp 中写 updateAll 时
$this->loadModel('User');
$this->User->updateAll(array('stauts'=>'active'));
这段代码等效的SQL查询是这样生成的
UPDATE User SET status='active';
我不知道为什么会这样。
如果您不理解我的问题,请在 cmets 中告诉我,我会尽快解释。
【问题讨论】:
-
作为开发者,我们应该按照cakephp的转换,updateAll函数的第二部分包含条件,如果我们没有条件,我们不应该通过...
-
最好问问 cakePhp 创建者,他们可能错过了考虑这种情况。
-
如何询问 cakePhp 创作者团队?
-
@AD7six 当然不是bug。我认为它可以被视为增强。所以
$this->User->updateAll(array('stauts'=>'active'),array());和$this->User->updateAll(array('stauts'=>'active'));生成相同的sql查询。 -
@AD7six 我已经研究了你的答案,如果我想根据条件更新,如果没有条件就更新所有没有条件的记录。下面的代码将在这种情况下部分工作。
标签: cakephp cakephp-2.0