Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysqli::query() gibt bei ausgewählten Abfragen true zurück

Das hört sich nach einer Art Race Condition an. Sie verwenden MyISAM, daher ist es möglich, dass eine Aktualisierung verschoben wird (insbesondere, wenn auf dieser Tabelle viel Verkehr ist).

Das true return gibt an, dass Sie select Abfrage ordnungsgemäß abgeschlossen, aber zurückgegebene und leere Ergebnismenge (keine Zeilen). Wenn Sie in diesem Fall beispielsweise 50 Millisekunden warten und es erneut versuchen möchten, werden Sie möglicherweise feststellen, dass die Dinge ordnungsgemäß funktionieren.

Bearbeiten :Sie könnten versuchen, die Tabelle zu sperren, bevor Sie das UPDATE durchführen, bis Sie das letzte SELECT durchgeführt haben. Dies kann jedoch die Leistung anderer Teile Ihrer App beeinträchtigen. Das Beste, was Sie tun können, ist, Ihre App angesichts der Rennbedingungen robust zu machen.