2014-10-30 25 views
2

我試圖從FuelPHP查詢生成器中的一列中減去一個數值。從燃料php查詢生成器中的列中減去一個值

它是這樣的。

update item set price = price - 1000; 

我寫的代碼是這樣的:

$query = DB::update('item')->set(array('price'=>'price'-1000)); 

然而,這並沒有從價格中減去1000,這個結果永遠是 「價格:-1000」。

我應該如何解決這個問題?

回答

3

或者,您可以在查詢生成器中使用/鏈->value(),並在其上使用DB::expr()

例子:

$value = 1000; 
$query = DB::update('item') 
->where('product_id', 999) 
->value('price', DB::expr('price - ' . $value)) // i prefer using this, much more straightforward 
->execute(); // DONT FORGET TO EXECUTE! 

或者使用->set()如果你決定要真正使用多個字段:

->set(array(
    'price' => DB::expr('price - ' . $value) 
)) 
+0

謝謝!有效。我不知道這種方法「 - >價值」。它有助於。並感謝您糾正我可憐的英語。 – user3119018 2014-11-04 11:46:11

+0

@ user3119018我不記得我在問題的措辭中糾正了什麼,因爲我在英語方面太差太大聲笑,但即時通訊很高興這個答案幫助 – Ghost 2014-11-04 12:33:21