Ich habe 2 Dateien vorbereitet, "1.php" und "2.php".
"1.php" sieht folgendermaßen aus.
<?php
$dbh = new PDO('sqlite:test1');
$dbh->beginTransaction();
print "aaa<br>";
sleep(55);
$dbh->commit();
print "bbb";
?>
und "2.php" sieht folgendermaßen aus.
<?php
$dbh = new PDO('sqlite:test1');
$dbh->beginTransaction();
print "ccc<br>";
$dbh->commit();
print "ddd";
?>
und ich rufe "1.php" auf. Es wird eine Transaktion gestartet und 55 Sekunden gewartet.
Wenn ich also sofort "2.php" ausschreibe, ist meine Erwartung die folgende:
- "1.php" wird zur Transaktion und
- "1" hält eine Datenbanksperre
- "2" kann keine Transaktion beginnen
- "2" kann keine Datenbanksperre erhalten, also
- "2" müssen 55 Sekunden warten
ABER, der Test verlief anders. Wenn ich "2" ausschreibe, dann
- "2" lieferte sofort sein Ergebnis
- "2" hat nicht gewartet
Ich muss also annehmen, dass "1" keine Transaktion oder keine Datenbanksperre erhalten konnte.
Kann jemand helfen?