[英]In CodeIgniter, Can we use Database Transactions like this?
在CodeIgniter中,是否也可以使用这样的“活动记录类”?
<?php
$data_balance = array(
'balance' => $newbalance
);
$data_transaction = array(
'amount' => $amount,
'user' => $user
);
$this->db->trans_start();
// This is an "Insert" query for a table
$this->db->set('date', 'NOW()', FALSE);
$this->db->insert('financial_transactions', $data_transaction);
// This is an "Update" query for another table
$this->db->where('user_id', $user_id);
$this->db->update('financial_balances', $data_balance);
$this->db->trans_complete();
if ($this->db->trans_status() === FALSE){
// Do stuff if failed
}
?>
请注意,我对两个查询都使用$ this-> db->,所以我不知道第一个查询的成功结果是否被清除以检查第二个查询?
这行得通吗? 我可以相信这将使查询要么成功要么都不成功(我不希望一个查询成功而一个查询失败)
从文档 :
默认情况下,CodeIgniter在严格模式下运行所有事务。 启用严格模式后,如果您正在运行多个事务组,则如果一个组失败,则所有组都将回滚。 如果禁用严格模式,则每个组将被独立对待,这意味着一个组的故障不会影响其他任何组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.