ErikBooy007
Terugkerende gebruiker
- Lid geworden
- 24 mei 2007
- Berichten
- 3.814
Goedemiddag!
Ik ben op het moment bezig met een project waarin ik weerberichten opsla in een database. Het gaat hierbij om luchtvaartweerberichten, zogenaamde METAR's.
Op zich geen probleem. Het punt is alleen, ik run een cronjob regelmatig, zodat het weer gedownload wordt en ingevoerd in de database. Het script haalt dan de weerberichten van de afgelopen 36 uur op. Dat script run ik elke 24 uur. Dan heb ik dus een redelijke overlap, maar weet ik zeker dat ik geen weerbericht mis.
Om te voorkomen dat de weerberichten meerdere keren in de database komen, heb ik een UNIQUE constraint gezet op de combinatie weerstation en tijd/datum.
Ik voer alle nieuwe weerberichten van een station in één query in (de nieuwste eerst en de oudste als laatste). Wat is nu het probleem? De nieuwe records komen wel in de DB, maar de query stopt bij een duplicate en daardoor kan ik met de PHP-functie mysql_affected_rows niet het aantal toevoegingen opvragen. Die functie returned namelijk "-1" (query failed).
Mijn vraag is nu: heeft iemand voor jullie een oplossing voor dit probleem? Mijn kennis van MySQL is niet fantastisch en misschien zit ik helemaal niet in de goede richting met die UNIQUE enzo.
Bij voorbaat dank!
Ik ben op het moment bezig met een project waarin ik weerberichten opsla in een database. Het gaat hierbij om luchtvaartweerberichten, zogenaamde METAR's.
Op zich geen probleem. Het punt is alleen, ik run een cronjob regelmatig, zodat het weer gedownload wordt en ingevoerd in de database. Het script haalt dan de weerberichten van de afgelopen 36 uur op. Dat script run ik elke 24 uur. Dan heb ik dus een redelijke overlap, maar weet ik zeker dat ik geen weerbericht mis.
Om te voorkomen dat de weerberichten meerdere keren in de database komen, heb ik een UNIQUE constraint gezet op de combinatie weerstation en tijd/datum.
Ik voer alle nieuwe weerberichten van een station in één query in (de nieuwste eerst en de oudste als laatste). Wat is nu het probleem? De nieuwe records komen wel in de DB, maar de query stopt bij een duplicate en daardoor kan ik met de PHP-functie mysql_affected_rows niet het aantal toevoegingen opvragen. Die functie returned namelijk "-1" (query failed).
Mijn vraag is nu: heeft iemand voor jullie een oplossing voor dit probleem? Mijn kennis van MySQL is niet fantastisch en misschien zit ik helemaal niet in de goede richting met die UNIQUE enzo.
Bij voorbaat dank!
Laatst bewerkt: