De vraag heeft denk ik wel enige uitleg nodig, dus hier komt ie:
Ik heb
- een socketserver in php
- een beheer-module, ook in php maar nu als apache-module
Als ik in de beheermodule de naam van een persoon wijzig, zorg ik dat ik na een succesvolle MySQL update-query verbinding maak met de socketserver.
Vervolgens stuur ik deze socketserver de opdracht (samen met de user-id als argument) om de gegevens van deze gebruiker op te halen en te 'broadcasten' naar alle aangesloten gebruikers zodat iedereen geinformeerd is over de veranderingen.
Het ophalen van deze gegevens gebeurt volgens een nieuwe mysql SELECT-query, en het rare is dat soms de oude gegevens op worden gehaald, dus de gegevens zoals ze waren -voor- de update-query, en deze 'oude' gegevens worden iedere keer gebroadcast, wat dus eigenlijk aangeeft dat de update-query gelukt is. (nb: Als deze query niet correct was zou ik dat altijd op mijn scherm krijgen)
Ik heb het ook met een php-sleep()-opdracht geprobeerd met 3 of 4 seconden tussen de update en de select, maar dit schijnt nog steeds geen verschil uit te maken.
Een soortgelijk principe wordt ook toegepast als de gebruiker zelf zijn gegevens aanpast.
In dat geval wordt er vanuit een Flash applicatie een HTTP-POST-request verzonden, en als de upate-query dan afgerond is wordt er via HTTP naar de gebruiker een xml-signaaltje terug-gestuurt dat het gelukt is.
Hierna verstuurt de flash-applicatie automatisch de opdracht om de gegevens opnieuw te laden en te broadcasten, en deze gaat iedere keer wel perfect.
Dus de vraag is: Heeft iemand hier een idee waarom ik oude gegevens terugkrijg terwijl de update goed gegaan is (zoals ook blijkt als via een konsole die mysql-database direct controleer)
ps: FLUSH QUERY CACHE of RESET QUERY CACHE heeft geen enkele invloed.
php-versie = 5.1.4
mysql-versie = Ver 14.12 Distrib 5.0.22
Alvast bedankt voor het nemen van de moeite om dit bericht te lezen
Ik heb
- een socketserver in php
- een beheer-module, ook in php maar nu als apache-module
Als ik in de beheermodule de naam van een persoon wijzig, zorg ik dat ik na een succesvolle MySQL update-query verbinding maak met de socketserver.
Vervolgens stuur ik deze socketserver de opdracht (samen met de user-id als argument) om de gegevens van deze gebruiker op te halen en te 'broadcasten' naar alle aangesloten gebruikers zodat iedereen geinformeerd is over de veranderingen.
Het ophalen van deze gegevens gebeurt volgens een nieuwe mysql SELECT-query, en het rare is dat soms de oude gegevens op worden gehaald, dus de gegevens zoals ze waren -voor- de update-query, en deze 'oude' gegevens worden iedere keer gebroadcast, wat dus eigenlijk aangeeft dat de update-query gelukt is. (nb: Als deze query niet correct was zou ik dat altijd op mijn scherm krijgen)
Ik heb het ook met een php-sleep()-opdracht geprobeerd met 3 of 4 seconden tussen de update en de select, maar dit schijnt nog steeds geen verschil uit te maken.
Een soortgelijk principe wordt ook toegepast als de gebruiker zelf zijn gegevens aanpast.
In dat geval wordt er vanuit een Flash applicatie een HTTP-POST-request verzonden, en als de upate-query dan afgerond is wordt er via HTTP naar de gebruiker een xml-signaaltje terug-gestuurt dat het gelukt is.
Hierna verstuurt de flash-applicatie automatisch de opdracht om de gegevens opnieuw te laden en te broadcasten, en deze gaat iedere keer wel perfect.
Dus de vraag is: Heeft iemand hier een idee waarom ik oude gegevens terugkrijg terwijl de update goed gegaan is (zoals ook blijkt als via een konsole die mysql-database direct controleer)
ps: FLUSH QUERY CACHE of RESET QUERY CACHE heeft geen enkele invloed.
php-versie = 5.1.4
mysql-versie = Ver 14.12 Distrib 5.0.22
Alvast bedankt voor het nemen van de moeite om dit bericht te lezen