PHP + MySQL:我可以或应该在db事务中包含多少编程?

时间:2012-09-10 17:16:08

标签: php mysql oop transactions

在单个MySQL事务中可以/应该包含多少PHP代码?在调用其他类和交易方面,交易的最佳做法是什么?单个事务中的方法,操作或创建实例等?

我在这里所说的“包含”是在beginTransaction();commit();之间输入

1 个答案:

答案 0 :(得分:1)

我习惯将一个事务用于一个元素及其所有依赖项。

例如,我有一个用户可以更改其昵称的论坛。但他们也可以删除他们的帐户,我不希望看到删除的帖子。因此,我需要在每个帖子中的某个地方保存我的用户名VARCHAR或类似内容。

如果用户更改了他的昵称,我将开始一个交易,在可能的任何地方更改他的昵称,如果没有错误,那么我承诺。此时我不会查看请求数,因为如果一个请求失败,我应该可以回滚有关此更改的所有内容。

但是如果管理员在管理面板中更改了2个昵称并验证了一次,我将打开2个交易(每个用户一个)以避免单个交易出现问题。