我的问题很简单,但很难找到搜索引擎的答案.
我只想更新数据库中的字段,使用旧字段值来添加另一个值.我现在正在使用以下内容:
$this->Advertisement->saveField('total_views', '(total_views + 1)', false);
Run Code Online (Sandbox Code Playgroud)
但这给了我下一个查询:
UPDATE `advertisement` SET `total_views` = '(total_views +1)', `modified` = '2011-08-26 10:44:58' WHERE `advertisement`.`id` = 16
Run Code Online (Sandbox Code Playgroud)
这是错误的,它应该是:
UPDATE `advertisement` SET `total_views` = (total_views +1), `modified` = '2011-08-26 10:44:58' WHERE `advertisement`.`id` = 16
Run Code Online (Sandbox Code Playgroud)
问题在于它放在(total_views +1)
引号之间.
有没有人知道如何使这个工作?
$this->Advertisement->updateAll(
array('Advertisement.total_views' => 'Advertisement.total_views + 1'),
array('Advertisement.id' => 1)
);
Run Code Online (Sandbox Code Playgroud)