我见过一个代码示例,其中有人做了
$dbh->rollback();
Run Code Online (Sandbox Code Playgroud)
当发生PDOException时.我以为数据库会在这种情况下自动回滚?
Pas*_*TIN 12
如果您commit
不是rollback
一个已打开的事务,并且它不在commited
您的脚本的后面,它将不会commited
(如数据库引擎所见),并将在脚本结束时自动回滚.
不过,我(好吧,差不多)总是commit
或rollback
明确地说我打开的交易,所以:
$db->rollback()
,他知道我希望事务回滚肯定,而且他不必考虑" 他真的想要回滚,还是他忘记了什么?"关于后来的剧本? "
数据库引擎没有"看到"PDOException:PHP在各种条件下抛出它 - 但数据库本身不回滚任何东西: