我准备了 2 个文件,“1.php”和“2.php”。
“1.php”是这样的。
<?php
$dbh = new PDO('sqlite:test1');
$dbh->beginTransaction();
print "aaa<br>";
sleep(55);
$dbh->commit();
print "bbb";
?>
而“2.php”就是这样的。
<?php
$dbh = new PDO('sqlite:test1');
$dbh->beginTransaction();
print "ccc<br>";
$dbh->commit();
print "ddd";
?>
我执行“1.php”。它启动一个事务并等待 55 秒。
所以当我立即执行“2.php”时,我的期望是:
- “1.php”正在获得交易和
- “1”持有数据库锁
- “2”不能开始交易
- "2" 无法获得数据库锁所以
- "2" 必须等待 55 秒
但是,但测试进行了另一种方式。当我执行“2”时,然后
- "2" 立即返回结果
- “2”没等
所以我不得不认为“1”无法获得事务,或者无法获得数据库锁。
任何人都可以帮忙吗?