Za předpokladu, že vaše databáze běží s výchozím nastavením, jsem více překvapen, že váš SELECT
kdykoli vrátí dvě různé hodnoty.
Dokumentace říká toto
Pokud je tedy výchozí REPEATABLE READ
úroveň izolace je platná, očekával bych, že všechny dotazy vrátí data konzistentní se stavem databáze v okamžiku prvního dotazu.
Nicméně to zní, že to může pomoci
Myslím, že byste to měli zkusit
$O_dbh->do('SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED');
ihned po připojení a zjistěte, zda se tím věci vyřeší.
Měli byste se však ujistit, že jste buď disconnect
popisovač databáze po této transakci nebo jej vraťte na předchozí úroveň izolace. Jinak začnete mít nekonzistentní výsledky.