在codeigniter中更新多个表

时间:2017-09-14 09:00:01

标签: codeigniter

我在codeigniter中有一个函数,我想用它来更新两个表。这是代码

if($loss_making_trade_amount > 5 && $loss_making_trade_amount < 20){

                $user_data = array(
                   'trading_balance' => $trading_balance_float - 0.50
                     );

                    $data = array(
                   'trade_consequence' => '0.50',
                   'loss_in_amounts_cron_status' => 'seen'
                     );

                $where = "id='$rid'";
                $where_trading_balance = "email='$email'";

                $this->db->where($where);
                $this->db->set($data);
                $this->db->update('mailbox_ke_01', $data);
                //update users table at this level
                $this->db->where($where_trading_balance);
                $this->db->set($user_data);
                $this->db->update('users', $user_data);
}

我能够以我的方式更新表格,还是$this在更新第二张表时会指向第一张表?

1 个答案:

答案 0 :(得分:0)

一旦查询运行,您的代码看起来很好 - 您不必担心,因为查询构建器在每次查询后都会自行重置(如果已完成),或者在出现数据库错误时死亡。

您可以仔细查看here

文档还明确建议在调用update函数时运行查询。

  

$this->db->update()生成更新字符串,并根据您提供的数据运行查询。

有关详细信息,请参阅文档here

我唯一要改变的是你的where子句:

而不是

$where = "id='$rid'";
$this->db->where($where);

你应该正确使用Querybuilder的where函数

$this->db->where("id", $rid);

同样适用于您的$where_trading_balance