许多功能的交易

时间:2013-06-02 13:16:17

标签: php mysql sql transactions

我有一些编辑或读取我的数据库的函数。在我做的第一件事情中启动一个事务是一个好主意,并提交或回滚它我做的最后一件事,而不是基于每个功能?

如果在同一事务中但在提交之前,是否会读取新值或旧值?

我想在每个页面加载中对所有函数调用进行事务处理。

编辑:

我只使用简单的单行sql语句。所有逻辑都是在php中完成的。

2 个答案:

答案 0 :(得分:1)

使用事务背后的想法是所有语句都需要成功的情况,或者没有成功的情况。

如果你不使用事务,mysql会将每个语句视为一个事务并在每个语句后自动提交(除非你禁用自动提交,否则什么也不会发生)。

答案 1 :(得分:1)

如果在同一事务中,则会读取新值。我们的想法是你可以在提交之前查看更新的结果,它不像事务隐藏更改,直到你提交它们,它只是允许你在出现问题时撤消更改。

关于是否在每个功能的基础上执行这些操作,它实际上取决于每个人正在做什么,以及它们是否影响相同的数据。如果您不需要检查并决定是否提交/回滚,直到所有这些都完成,那么可能只保留一个事务。