PDO事务:另一个脚本会发生什么

时间:2016-09-20 19:07:33

标签: php mysql pdo transactions

在PHP文档网站上说:

  

当交易处于活动状态时,您可以保证不会有其他人   你可以在工作中做出改变

参考:http://php.net/manual/en/pdo.transactions.php

问题是:如果我在脚本A中启动事务,然后脚本B尝试在脚本A提交之前进行任何更改 - 脚本B的结果是什么?它会“等待”吗?它会因错误而失败吗?到底是什么?

1 个答案:

答案 0 :(得分:0)

事务是在DBMS级别控制的,而不是由PHP控制的。因此,如果某些内容被阻止,则由您的DBMS完成。这会有所不同,因为不同的数据库引擎会阻塞不同的级例如,MySQL MyISAM引擎将锁定在表级别,而MySQL InnoDB引擎可以在行级别阻塞。锁定也可以按会话或全局进行,具体取决于您配置DBMS的方式以及执行事务的方式。 PDO只为特定于供应商的DBMS实现驱动程序,因此它并没有真正的说法。