2014-10-30 4 views
2

FuelPHP 쿼리 빌더에서 하나의 열에서 수치를 뺍니다.연료 PHP 쿼리 빌더의 컬럼에서 값을 뺍니다.

그 것처럼.

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

그러나,이 가격에서 1000 빼지 않고,이 결과는 항상 "가격 : -1000"입니다 :

update item set price = price - 1000; 

와 나는 같은 코드를 썼다.

어떻게 해결해야합니까?

답변

3

또는 쿼리 작성기에서/chain ->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

+0

@ user3119018 나는 영어로 너무 나쁘다로 질문의 wordings에서 무엇을 수정 기억이 안나요,하지만이 도움이 된 기쁜 메신저 – Ghost