防止部分数据库操作

时间:2013-04-23 04:29:49

标签: php mysql database database-design mysqli

我在PHP中创建了一些函数,它们执行一些或其他数据库操作,如插入,删除,更新等。每次我想做一些操作时都会调用这些函数。

现在,让我们说,我需要做以下事情:

  • 执行数据库操作的调用函数1,等待返回消息 然后
  • 调用另一个数据库操作的函数2,等待返回消息 然后
  • 调用功能3执行其他数据库操作,等待返回消息

如果DB操作在function1和function2中成功执行但在function3中没有执行,则完成操作失败,因为所有三个功能必须成功。在这种情况下,我想回滚function1和function2所做的更改,因为操作不成功。

我想过堆叠查询并一次执行它们但问题是我不知道何时必须执行查询堆栈。

例如。

if I call $obj->deletethread();
it calls $obj->deletemsg(); and $obj->deleteattachments(); and $obj->deletetags(); gets called

但可能并非总是如此。

if I call $obj->deletemsg();
$obj->deleteattachments(); and $obj->deletetags(); gets called

我想说的是这些函数可以通过任何其他函数以任何顺序调用。有没有办法实现这个目标?

为什么我需要这个:如果数据库操作在任何时候都不成功,部分数据会插入数据库操作成功的表中,这是我不想要的,因为它会导致不正确的记录。 / p>

0 个答案:

没有答案