Forudsat at din database kører med standardindstillingerne, er jeg mere overrasket over, at din SELECT nogensinde returnerer to forskellige værdier.
Dokumentationen siger dette
Så hvis standarden REPEATABLE READ isolationsniveau er i kraft, ville jeg forvente, at alle forespørgsler ville returnere data, der stemmer overens med databasens tilstand på tidspunktet for den første forespørgsel.
Det lyder dog som om, at dette kan hjælpe
Jeg synes du skal prøve
$O_dbh->do('SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED');
umiddelbart efter forbindelsen, og se, om det løser tingene for dig.
Du skal dog sørge for enten at disconnect databasehåndtaget efter denne transaktion eller returner det til det tidligere isolationsniveau. Ellers vil du begynde at få inkonsistente resultater.