Supondo que seu banco de dados esteja sendo executado com as configurações padrão, estou mais surpreso que seu
SELECT
sempre retorna dois valores diferentes. A documentação diz isso
Então, se o padrão
REPEATABLE READ
Se o nível de isolamento estiver em vigor, eu esperaria que todas as consultas retornassem dados consistentes com o estado do banco de dados no momento da primeira consulta. No entanto, parece que isso pode ajudar
Eu acho que você deveria tentar
$O_dbh->do('SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED');
imediatamente após a conexão e veja se isso resolve as coisas para você.
No entanto, você deve certificar-se de
disconnect
o identificador do banco de dados após essa transação ou retorne-o ao nível de isolamento anterior. Caso contrário, você começará a obter resultados inconsistentes.