我需要进行多次插入/更新,所以我想出了事务以在出现任何问题时回滚。此外,如果已经存在,我的应用程序应该更新记录,如果不存在则插入。
所以首先我尝试使用唯一的 id 更新记录,如果它返回受影响的行 = 0,我会继续插入。
可能我错过了事务/受影响行中的某些内容,它总是返回affected_rows = 0。
下面是代码:
$this->db->trans_start();
$this->db->where('order_id', $order_id);
$this->db->where('order_status', 'Active');
$this->db->update('orders', $order);
$this->db->where('order_id', $order_id);
$this->db->where('sku', $item_sku);
$this->db->update('order_items', $order_items);
$this->db->trans_complete();
if ($this->db->affected_rows()==0){
$this->db->trans_start();
$this->db->insert('orders', $order);
$this->db->insert('order_items', $order_items);
$this->db->trans_complete();
}
提前致谢!