pdo事务与自动提交-凯发官网入口
现在通过 pdo 连接上了,在开始进行查询前,必须先理解 pdo 是如何管理事务的。事务支持四大特性(acid):原子性(atomicity)、一致性(consistency)、隔离性(isolation)以及持久性(durability)。通俗地讲,在一个事务中执行的任何操作,即使是分阶段执行的,也能保证安全地应用于数据库,并在提交时不会受到来自其他连接的干扰。事务操作也可以根据请求自动撤销(假设还没有提交),这使得在脚本中处理错误更加容易。
事务通常是通过把一批更改"积蓄"起来然后使之同时生效而实现的;这样做的好处是可以大大地提供这些更改的效率。换句话说,事务可以使脚本更快,而且可能更健壮(不过需要正确地使用事务才能获得这样的好处)。
不幸的是,并非每种数据库都支持事务,因此当第一次打开连接时,pdo 需要在所谓的"自动提交"模式下运行。自动提交模式意味着,如果数据库支持,运行的每个查询都有它自己的隐式事务,如果数据库不支持事务,则没有。如果需要一个事务,则必须用 pdo::begintransaction() 方法来启动。如果底层驱动不支持事务,则抛出一个 pdoexception 异常(不管错误处理设置是怎样的,这都是一个严重的错误状态)。一旦开始了事务,可用 pdo::commit() 或 pdo::rollback() 来完成,这取决于事务中的代码是否运行成功。
#pdo #php