Dit klinkt als een soort raceconditie. Je gebruikt MyISAM, dus het is mogelijk dat een update wordt uitgesteld (vooral als er veel verkeer op die tafel is).
De true
return geeft aan dat uw select
query correct voltooid maar geretourneerd en lege resultaatset (geen rijen). Als uw logica wanneer dat gebeurt, is om bijvoorbeeld 50 milliseconden te wachten en het opnieuw te proberen, zult u merken dat de dingen correct werken.
Bewerken :U kunt proberen de tabel te vergrendelen voordat u de UPDATE uitvoert totdat u de laatste SELECT hebt gedaan. Maar dat kan de prestaties van andere delen van uw app verslechteren. Het beste wat u kunt doen, is uw app robuust maken in het licht van race-omstandigheden.