2016-10-20 8 views
0

このPDOステートメントは正常に動作しますが、CodeIgniterのアクティブレコードに変換するにはどうすればよいですか?このPDO文をCodeIgniterのアクティブレコードクエリに変換するにはどうすればよいですか?

マイPDO文は次のとおりです。

UPDATE mytable set total=bought+re_order-balance where retail_id=? and stock=? and stock_date=? 

私はこれを試してみましたが、didntの仕事:

$data=array(                       
        //some other fields 
        'total'=>'bought' + 're_order' - 'balance'      
        ); 

       $this->db->where('retail_id', $someid); 
       $this->db->where('stock', $somestock); 
       $this->db->where('stock_date', $somestock); 
       $this->db->update('mytable',$data); 

私はこれを試したとき、それはそれがなかった、同時にすべてのエラーを与えませんでしたデータベースの私の合計フィールドを更新しません。ヘルプpls。ありがとう。

+0

購入、再注文とバランスの文字列または数字ですか? – Blinkydamo

+0

これらはすべて整数です。それらは同じテーブル内のすべてのフィールドでもあります。 – schenker

+0

だから、 '$ data = array( 'total' =>($買い+ $再注文 - $残高))です。現時点では、文字列で数学を実行しようとしています – Blinkydamo

答えて

2

次のコードは、必要なクエリを作成する必要があります。 set()メソッドの3番目のパラメータは、データがエスケープされないようにします。あなたはそれ以上に読むことができますdocs

$this->db->set('total', 'bought + re_order - balance', FALSE) 
      ->where('retail_id', $someid) 
      ->where('stock', $somestock) 
      ->where('stock_date', $somestock) 
      ->update('mytable'); 
+0

ありがとうございました。 – schenker

関連する問題