Ich bereitete 2 Dateien vor, "1.php" und "2.php".SQLite-Transaktion funktioniert nicht wie erwartet
"1.php" ist wie folgt.
<?php
$dbh = new PDO('sqlite:test1');
$dbh->beginTransaction();
print "aaa<br>";
sleep(55);
$dbh->commit();
print "bbb";
?>
und "2.php" ist wie folgt.
<?php
$dbh = new PDO('sqlite:test1');
$dbh->beginTransaction();
print "ccc<br>";
$dbh->commit();
print "ddd";
?>
und ich execute "1.php". Es startet eine Transaktion und wartet 55 Sekunden.
Also, wenn ich sofort excute "2.php", ist meine Erwartung dies:
- "1.php" wird immer Transaktion und
- "1" hält eine Datenbank sperren
- „2 "kann nicht eine Transaktion beginnen
- "2" kann nicht Datenbank-Sperre erhalten so
- "2" haben bis 55 Sekunden warten
ABER, aber der Test ging anders. Als ich "2" excute, dann
- "2" sofort zurück es Ergebnis ist
- "2" nicht warten
so muß ich denke, dass "1" nicht Transaktion erhalten könnte, oder konnte keine Datenbanksperre erhalten.
Kann jemand helfen?