txt als database, meerdere instanties mogelijk?
Of is het gelijk windows en als het bestand in gebruik is kan niemand anders iets opslaan?
Ruben D op 31/08/2012 16:35:43:
... terwijl een andere het ook open heeft staan ...
Hoe bedoel je?
We spreken over een .txt bestand dat op de server staat. Bedoel je dat die andere persoon op die server is ingelogd en het bestand met kladblok (of iets anders) open heeft staan?
Gewijzigd op 31/08/2012 16:47:48 door Kris Peeters
min of meer, zeg dat er 100 man op exact hetzelfde moment gegevens post naar het tekst bestand, gaat dat tegelijk?
Weet iemand meer?
Ik weet dat het snel gaat ja, weet zelfs niet hoe dat bij een mysql db zit. vroeg het mij af of ze elkaar zouden hinderen.
De lock functie zorgt er dan voor dat iedereen aan de beurt komt.
Zie http://php.net/manual/en/function.flock.php
n.b. bij een MySQL doe je dat ook, alleen daar merk je het niet.
Gewijzigd op 31/08/2012 16:51:29 door John Berg
Automatisch?, of moet je zelf een loop maken als het niet lukt opnieuw proberen.
Ruben D op 31/08/2012 16:53:35:
Automatisch?, of moet je zelf een loop maken als het niet lukt opnieuw proberen.
Als je een flock geeft kom je in een wachtrij te staan. Zodra je aan beurt bent kun je jouw ding met de file doen.
Moet je te lang wachen, dan breekt de lock af en krijg je een foutmelding.
Het is dus van belang om als je aan de beurt bent, jouw ding zo snel mogelijk te doen, en dan het spul weer vrij te geven.
En flock() is inderdaad hetgeen je nodig hebt.
Met fopen() en fclose() kan je dan nog wel het een en ander doen.
Een tekst-database heb ik ook even mee gewerkt (omdat er nog geen SQL-was), maar ben heel blij dat die uiteindelijk wel gekomen is.
Vond mysql beetje overbodig tot nu, maar hoe gebeurt dit daar dan? zelfde systeem?
Ruben D op 31/08/2012 17:11:01:
Vond mysql beetje overbodig tot nu, maar hoe gebeurt dit daar dan? zelfde systeem?
In beginsel wel. Afhankelijk van wat er moet gebeuren kan er op
database, tabel, block of record level gelockt worden.
Gaat helemaal vanzelf, evenals het oplossen van eventuele conflicten.
nice, bedankt allemaal