2011-08-26 43 views
4

我的問題很簡單,但很難找到答案雖然搜索引擎。在cakephp中使用數據庫字段值和savefield加起來的值

我只是想更新數據庫中的一個字段,使用該字段的舊值來添加另一個值。我使用的是下面的那一刻:

$this->Advertisement->saveField('total_views', '(total_views + 1)', false); 

但是,這給了我一個查詢:

UPDATE `advertisement` SET `total_views` = '(total_views +1)', `modified` = '2011-08-26 10:44:58' WHERE `advertisement`.`id` = 16 

這是錯誤的,它應該是:

UPDATE `advertisement` SET `total_views` = (total_views +1), `modified` = '2011-08-26 10:44:58' WHERE `advertisement`.`id` = 16 

的問題是它將(total_views +1)放在引號之間。

有沒有人有如何讓這個工作的想法?

回答

5
$this->Advertisement->updateAll(
array('Advertisement.total_views' => 'Advertisement.total_views + 1'), 
array('Advertisement.id' => 1) 
); 
+2

非常感謝,這工作! –

1
$this->Advertisement->updateAll(array('Advertisement.total_views'=>'Advertisement.total_views+1'), array('Advertisement.id'=>$id)); 
2

萬一別人卡住這個問題,在查詢中的空間是很重要的。

作品Advertisement.total_views + 1

不起作用Advertisement.total_views+1

相關問題