Tôi đã chuẩn bị 2 tệp, "1.php" và "2.php".Giao dịch SQLite không hoạt động như mong đợi
"1.php" là như thế này.
<?php
$dbh = new PDO('sqlite:test1');
$dbh->beginTransaction();
print "aaa<br>";
sleep(55);
$dbh->commit();
print "bbb";
?>
và "2.php" là như thế này.
<?php
$dbh = new PDO('sqlite:test1');
$dbh->beginTransaction();
print "ccc<br>";
$dbh->commit();
print "ddd";
?>
và tôi thực hiện "1.php". Nó bắt đầu một giao dịch và chờ 55 giây.
Vì vậy, khi tôi ngay lập tức thực thi "2.php", mong đợi của tôi là thế này:
- "1.php" là nhận được giao dịch và
- "1" nắm giữ một cơ sở dữ liệu khóa
- "2 "không thể bắt đầu một giao dịch
- '2' không thể có được khóa cơ sở dữ liệu để
- '2' phải đợi 55 giây
NHƯNG, nhưng thử nghiệm đã đi theo một cách khác. Khi tôi thực thi "2", sau đó
- "2" ngay lập tức quay trở lại đó là kết quả
- "2" không đợi
vì vậy tôi phải suy nghĩ rằng "1" không thể có được giao dịch, hoặc không thể lấy khóa cơ sở dữ liệu.
Có ai giúp được không?