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.