Mysql
 sql >> Base de données >  >> RDS >> Mysql

mysqli ::query () renvoie vrai sur les requêtes sélectionnées

Cela ressemble à une condition de course en quelque sorte. Vous utilisez MyISAM, il est donc possible qu'une mise à jour soit différée (surtout s'il y a beaucoup de trafic sur cette table).

Le true return indique que votre select la requête s'est terminée correctement mais a renvoyé un jeu de résultats vide (pas de lignes). Si votre logique lorsque cela se produit est d'attendre, disons, 50 millisecondes, et de réessayer, vous constaterez peut-être que tout fonctionne correctement.

Modifier :Vous pouvez essayer de verrouiller la table avant de faire la mise à jour jusqu'à ce que vous ayez fait le dernier SELECT. Mais cela pourrait nuire aux performances d'autres parties de votre application. La meilleure chose à faire est de rendre votre application robuste face aux conditions de concurrence.