php - PDO 事务 : What happens to another script

标签 php mysql pdo transactions

在 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/

相关文章:

php - Typo3介绍包版本9.5

php - 是否需要验证 $_GET id

php - MySQL 中的第三个 where 语句中断查询

mysql - 3 个表的内部联接如何获取日期最大值的 Id?

mysql - 尝试更新主键值时出错

java - 将 Java Web 项目部署到物理服务器

php - 在 PHP 脚本中,在连接/发送查询到数据库时应该如何处理异常?

php - 可以使用mysqli连接到数据库,而不是使用mysqli查询使用PDO吗?

javascript - 如何发送ajax到同一页面?

php - 如何在 Laravel 5.6 中使用现有表?