我在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
在更新第二张表时会指向第一张表?
答案 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