在 PHP 文档网站上说:
while the transaction is active, you are guaranteed that no one else can make changes while you are in the middle of your work
引用:http://php.net/manual/en/pdo.transactions.php
问题是:如果我在脚本 A 中开始事务,然后脚本 B 尝试在脚本 A 提交之前进行任何更改——脚本 B 的结果会是什么?会“等”吗?它会因错误而失败吗?究竟是什么?
最佳答案
事务在 DBMS 级别控制,而不是由 PHP 控制。因此,如果某些内容被阻止,那是您的 DBMS 完成的。这会有所不同,因为不同的数据库引擎会在不同级别阻塞。例如,MySQL MyISAM 引擎将在表级锁定,而 MySQL InnoDB 引擎可以在行级锁定。锁定也可以在每个 session 或全局基础上发生,具体取决于您如何配置 DBMS 以及如何执行事务。 PDO 仅为您的特定于供应商的 DBMS 实现驱动程序,因此它在所有这些方面没有真正的发言权。
关于php - PDO 事务 : What happens to another script,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39601999/