Ако приемем, че вашата база данни работи с настройките по подразбиране, повече съм изненадан, че вашият SELECT
някога връща две различни стойности.
Документацията казва това
Така че, ако по подразбиране REPEATABLE READ
ниво на изолация, бих очаквал, че всички заявки ще върнат данни, съответстващи на състоянието на базата данни в момента на първата заявка.
Въпреки това звучи сякаш това може да помогне
Мисля, че трябва да опитате
$O_dbh->do('SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED');
веднага след свързването и вижте дали това ще оправи нещата за вас.
Трябва обаче да се уверите, че сте disconnect
манипулатора на базата данни след тази транзакция или го върнете към предишното ниво на изолация. В противен случай ще започнете да получавате противоречиви резултати.