Ik heb een poosje terug een mysql database nagemaakt met php, door gebruik te maken van bestanden. Dit werkte erg goed, het enige waar ik niet tevreden mee was, was de snelheid (ongeveer 20x zo langzaam als een normale mysql database) dus daarom ben ik nu bezig met een versie 2.0 van mijn script om meer snelheid te krijgen.
Het belangrijkste van het script is de query zo in een array te plaatsen dat het bruikbaar is. Ik zou niet weten hoe ik dit kon doen met preg_match of iets dergelijks dus ik ben opzoek gegaan naar andere manier. Nu maak ik gebruik van de functie strtok(), dit script werkt goed, alleen zit ik nog met 1 probleem.
Mijn script werkt niet als je geen komma+spatie (, ) achter elke waarde invoert. Dus:
(bla, bla bla, bla) werkt correct
(bla,bla bla,bla) werkt niet correct
Weet iemand een manier op dit op te lossen, want er zijn helaas zat mensen die achter de komma geen spatie plaatsen. (misschien iets met preg_replace?)
En weet iemand iets in het script te vinden wat beter (en sneller) kan?
Ik snap het nut hier niet van in.. denk je dat het hierdoor sneller gaat door het allemaal in een array te gaan proppen? *-) je kan toch variabelen gaan gebruiken zoals INSERT INTO 'variabele' ('variabele array met dingen') VALUES ('dezelfde variabele array maar dan met de waarden')
Ik snap het nut er ook niet echt van. Maar voer je de query's ook uit? Als je een MySQL query uitvoerd en je post een ; (semicolon) dan sluit deze de query. Als dit ook bij jou gebeurt kan je de ; (semicolon) escapen met str_replace() functie.
jullie snappen het idd niet (behalve svm). Het enige wat het met mysql te maken heeft is dat het gebruik maakt van dezelfde commando's. Ik ben bezig met datafiles (zo noem ik het) wat je kunt gebruiken als je bijv geen mysql tot je beschikking hebt, maar alleen php. Alleen moet ik dus ervoor zorgen dat ik weet welke commando er wordt uitgevoerd en alle andere gegevens uit de commando kan halen. Snappen jullie dat? Ik heb al een werkende versie zoals ik al verteld heb, alleen is hij te langzaam. Voorbeeld van een hele simpele gastenboek kun je hier vinden http://grayen.gr.funpic.de/.
@svm, ja maar het moet niet zo zijn dat de de inhoud word aangepast
stel ik heb een formuliertje, ik post hem. ik stop de vars in de query. Die waardes moeten niet aangepast worden. zou iemand bijvoorbeeld dit poste: "," dan moet dat niet ", " worden. Dat is het probleem.
Ik heb hier zelf ook wel eens over nagedacht, over hoe je een "database" zou kunnen maken met louter bestanden.
Het idee van een database is, dat je gegevens gestructureerd opslaat, zodat je gegevens kunt ordenen, filteren en er doorheen kunt snuffelen met zoekopdrachten (queries).
Tekstbestanden of CSV-bestanden missen deze structuur, m.a.w. ze zijn "plat". Deze lenen zich dus niet als database.
Een bestand(stype) dat wèl structuur bevat is XML. Met XML zou je zoiets wel kunnen maken.
Op sitepoint.com staat een artikel waarin wordt beschreven hoe je een "XML-powered CMS" zou kunnen maken.
Ik durf te wedden dat als je naar "XML database project" o.i.d. Google'd, dat je dan ook tal van resultaten vindt.
@fangorn
Ik maak daarom ook gebruik van array's die ik serialize (om de array in een bestand te plaatsen) en unserialize (om de array er weer uit te halen). Dit werkt goed, enige waar het nog slecht draait in mijn script is die query goed filteren.
Ibrahim - 20/02/2007 18:55 (laatste wijziging 20/02/2007 18:56)
PHP expert
je kunt een regex gebruiken om die (,) toe te staan