To zní jako nějaký druh závodu. Používáte MyISAM, takže je možné, že aktualizace bude odložena (zejména pokud je na této tabulce velký provoz).
true
return znamená, že select
dotaz dokončen správně, ale vrátil sadu výsledků a prázdnou (žádné řádky). Pokud je vaší logikou, když k tomu dojde, počkat, řekněme, 50 milisekund a zkusit to znovu, možná zjistíte, že věci fungují správně.
Upravit :Můžete zkusit uzamknout tabulku před provedením UPDATE, dokud neprovedete poslední SELECT. To by však mohlo zhoršit výkon ostatních částí vaší aplikace. Nejlepší věc, kterou můžete udělat, je zajistit, aby vaše aplikace byla odolná vůči závodním podmínkám.