Giả sử cơ sở dữ liệu của bạn đang chạy với cài đặt mặc định, tôi ngạc nhiên hơn rằng SELECT
của bạn đã từng trả về hai giá trị khác nhau.
Tài liệu nói điều này
Vì vậy, nếu REPEATABLE READ
mặc định mức cô lập đang có hiệu lực, tôi hy vọng rằng tất cả các truy vấn sẽ trả về dữ liệu phù hợp với trạng thái của cơ sở dữ liệu tại thời điểm truy vấn đầu tiên.
Tuy nhiên, có vẻ như điều này có thể hữu ích
Tôi nghĩ bạn nên thử
$O_dbh->do('SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED');
ngay sau khi kết nối và xem liệu điều đó có khắc phục được sự cố cho bạn hay không.
Tuy nhiên, bạn nên đảm bảo disconnect
cơ sở dữ liệu xử lý sau giao dịch này hoặc trả nó về mức cô lập trước đó. Nếu không, bạn sẽ bắt đầu nhận được kết quả không nhất quán.