可能听起来很傻,但我想知道有没有办法将PHP代码包含在某些函数中,这样如果发生任何错误,它会回滚它已经完成的所有进程。 (就像我们在mysql-Automocity中所做的那样)例如:
$this->BEGIN;
$this->function1();
$this->function2();
$this->COMMIT;
答案 0 :(得分:0)
数据库服务器可以简单地将所有更改回滚到数据库表,但由于PHP功能更强大,因此无法轻松完成。
你可以这样做:
try
{
// Do something / create file
file_put_contents("/tmp/test.txt", "Test");
// ... some more actions here ...
// some error occurs, rollback!
if($some_error)
{
throw new Exception();
}
}
catch(Exception $e)
{
// undo all changes
@unlink("/tmp/test.txt");
}
另请注意,有一些事情是无法撤消的。例如,http调用某些web服务。