Förutsatt att din databas körs med standardinställningarna är jag mer förvånad över att din SELECT
någonsin returnerar två olika värden.
Dokumentationen säger detta
Så, om standard REPEATABLE READ
isoleringsnivån är i kraft, skulle jag förvänta mig att alla frågor skulle returnera data som överensstämmer med databasens tillstånd vid ögonblicket för den första frågan.
Det låter dock som att det här kan hjälpa
Jag tycker du ska försöka
$O_dbh->do('SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED');
omedelbart efter anslutningen och se om det fixar saker för dig.
Du bör dock se till att antingen disconnect
databashanteraren efter denna transaktion eller återställ den till föregående isoleringsnivå. Annars kommer du att börja få inkonsekventa resultat.