YJ wrote:
>>Det ovenstående kan ikke rigtig blive hurtigere, hvis du reelt ønsker at
>>stoppe hele resultatet i en datastruktur.
>
> Øv.
> Håbede på der fandtes en php-ækvivalent til get_all_rows
Det fremgår af dokumentationen at den ikke findes.
>>Det betyder at du kommer til at lave to gennemløb på dine forespørgsler,
>>frem for ét i den situation hvor man skriver ud i takt med at man henter
>>data. Hvis du skal bruge datasættet flere gange, kan det selvfølgelig
>>give mening.
>
> Ja, det skal bruges flere gange.
Så er der nok ikke så meget andet at gøre, med mindre du kan arrangere
dine klasser i et hieraki, der sender data-events til hinanden a'la SAX.
>>Hvis du ønsker at frakoble forespørgslen fra den kode, der bruger
>>resultatet
>
> Det er netop en af pointerne.
> Jeg har en database klasse, som laver alle udtræk og de andre
> klasser/funktioner der skal bruges data kalder så databaseklassen, og får en
> hash retur. De kommer således aldrig til at opleve hvis jeg skifter database
> eller ændrer på strukturen i databasen.
Og du har kasseret de frameworks, der alleede er lavet til det?
> Kender ikke callbacks, men det kan jeg nok finde i manualen.
Callbacks er ikke PHP-specifikt, men en metode til at overdrage
kontrollen til den del af koden, der laver forespørgselen. Her er noget
pseudokode:
klasse DataForbruger {
metode aftagNogetData(Array rækkeMedData) {
<<gør noget ved den modtagne række med data>>
}
}
minDataForbruger = ny(Dataforbruger);
handle = sql_forespørgsel(<<sql>>);
sålænge(data = handle->hent_data()) {
minDataForbruger->aftagNogetData(data);
}
Så kan man aflevere data til flere aftagere på en gang (put det ind i
løkken ovenfor og man kan have indlejrede aftagere. Det er en
arkitektur, man kan kalde for fetch-event-dreven, som er specielt egnet
til hurtig behandling af data. Jeg har brugt det til f. eks. at
processere ekstremt store XML-filer (den største var omkring 18 GB).
Fordelene er altså at man kan processere meget store mængder data meget
hurtigt. Ulemperne er, at man kan blive nødt til at cache data rundt
omkring, for at få mulighed for at behandle det korrekt. Enkelte steder
var jeg også nødt til at lave nogle temmeligt mærkelige
callback-mekanismer, for at få koblet data sammen, som forekom med meget
stor spredning i filen.
Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
Visit my home page at
http://michael.zedeler.dk/
Get my vcard at
http://michael.zedeler.dk/vcard.vcf