如何在CI中更新查询

时间:2014-12-19 13:06:29

标签: codeigniter

我在codeigniter中有更新查询问题。

    $arrPartnerId = $partnerData['partner_id'];
            print_r($partnerData['partner_id']);

           if(is_array($arrPartnerId) > 0 ){
               foreach( $arrPartnerId as $partnerId){
                   $this->db->set('partner_id', $partnerId );
                   $this->db->where('promotion_id', $promotionData['promotion_id'] );
                   $this->db->update('partner_promotion_relation');
               }
           }

我的数据是$ aaPartnerId =([0] => 4,[1] => 5)我有一个id然后如何在数据库中更新。

2 个答案:

答案 0 :(得分:0)

我认为你混淆了一个地方和设定条件,你应该更喜欢这个:

$this->db->set('promotion_id', $promotionData['promotion_id']);
$this->db->where('partner_id', $partnerId);
$this->db->update('partner_promotion_relation');

这只是一个假设,因为在你的情况下,你在表中保持更新2次相同的行,这是不合逻辑的。

答案 1 :(得分:0)

如果您的数组是这样的,

$arrPartnerId = array(
                     0 => 4,
                     1 => 5
                     );

$promotionData['promotion_id'] = 123; //assumption

然后试试这个,

if(sizeof($arrPartnerId) > 0 )
      {
           foreach( $arrPartnerId as $partnerId)
           {
               $this->db->set('partner_id', $partnerId );
               $this->db->where('promotion_id', $promotionData['promotion_id'] );
               $this->db->update('partner_promotion_relation');
           }
      }

它将解决问题。