繁体   English   中英

在CodeIgniter中,我们可以这样使用数据库事务吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM