Bonjour j'ai un petit problème, qui peut se résoudre je crois avec des tables de type innoDB.
J'ai créé un moteur d'événement pour mon projet et je crains les doubles executions.
Donc j'ai une table avec un timestamp final. A chaque page ouverte, le client vérifie si ce timestamp est écoulé, et si oui, execute le script et supprime la ligne.
Le problème c'est que pendant cette execution (avant la suppression), un autre client peut lire la table et l'executer lui aussi. Le résultat sera donc doublé et ça va fouttre la m*.
Avec myisam (j'ai toujours travaillé avec ça avant), j'avais bricolé un truc pas propre, mais le résultat a jamais été bon. J'ai créé un champ supplémentaire appelé roll. Avant le select je faisais un update de ce roll avec l'id de session php du client.
Le select pointait alors sur cet id de session. Ca marche bien... mais c'est pas parfait, j'ai eu des cas de double execution.
Y a t'il un moyen avec innoDB de faire un SELECT et de bloquer en même temps la lecture jusqu'à la suppression ?
Merci d'avance pour les réponses que vous me proposerez.
Bien à vous,
Matt
Partager