【问题标题】:Manual Transaction in CodeIgniterCodeIgniter 中的手动事务
【发布时间】:2015-06-30 06:01:29
【问题描述】:

我正在尝试使用 Codeigniter 事务,因为我是新手,我真的不知道使用 $this->db->trans_begin() 或 $this->db->trans_start().

什么是手动交易,我们应该在什么时候考虑使用它。

并且一旦事务被提交,是否应该每次都使用$this->db->trans_off() 来继续自动提交?

【问题讨论】:

标签: php database codeigniter


【解决方案1】:
  1. $this->db->trans_start()$this->db->trans_complete(); 一起使用。

如果这两个语句之间的任何查询失败,它将自动回滚它们。如果成功,它将自动提交它们。

  1. 但是,如果您在此行之后使用 $this->db->trans_begin(); 任何查询,除非您提交或回滚它们,否则不会发生任何事情。

查看示例(from CI docs)

  1. http://www.codeigniter.com/user_guide/database/transactions.html#running-transactions
  2. http://www.codeigniter.com/user_guide/database/transactions.html#running-transactions-manually

$this->db->trans_off(); 表示您可以禁用事务。您是否关闭它取决于您。我从不使用它,这意味着我总是打开事务。see details

【讨论】:

  • 但是我们应该在哪里使用手动交易以及我们应该在哪里使用自动交易?
  • 如果你有一堆查询并且没有其他查询每个查询都没有意义,即如果只有一个查询失败,你不想执行任何其他查询,使用 trans_begin。如果你只想回滚那些失败的,即其他人仍然应该被执行,使用 trans_start。
猜你喜欢
  • 2010-12-19
  • 2013-01-01
  • 2013-02-19
  • 2012-03-24
  • 1970-01-01
  • 2022-08-21
  • 2019-11-25
  • 1970-01-01
相关资源
最近更新 更多