2010-12-14 9 views
0

Im Moment, ich bin Umgang mit ihnen wie folgt aus:Was sind einige der effizienteren Möglichkeiten zur Bearbeitung von Abfragen?

$query = mysql_query("..."); 
while ($results = mysql_fetch_array($query)) 
{ 
    ... 
} 

Was sind die praktischen Möglichkeiten, um dies zu realisieren?

+0

Normalerweise verwende ich fetch_object, aber normalerweise würden Sie eine Datenbankabstraktionsschicht zusammen mit einer orm-Bibliothek verwenden. Zumindest für größere Projekte. – janoliver

+2

ORM effizient ?? lol –

Antwort

2

Meine Frage an Sie ist: Was ist unpraktisch darüber?

Es scheint das ideale Paradigma für die Verarbeitung Ihrer Ergebnismenge eine Reihe zu einer Zeit. Wenn Sie das brauchen, dann brauchen Sie das.

Mein einziger Rat wäre, sicherzustellen, dass Sie nur nach den Spalten fragen, die Sie benötigen, und dass Sie die Datenbank tun lassen, was es am besten ist. Mit anderen Worten, wenn Sie aggregierte Ergebnisse haben möchten, sollte die Datenbank dies tun (anstatt alle Datensätze zu reduzieren und auf dem Client zu aggregieren).


die Notwendigkeit Bezug auf alles auf einmal zu tun, gibt es nicht viel Unterschied zwischen etwas wie (Pseudo-Code):

array_of_array = fetch_all() 

und

array_of_array = empty 
while (array = fetch_one()): 
    array_of_array.push (array); 

Sicher nicht genug für die Sprachentwickler zu denken, dass es notwendig ist, angesichts der möglichen fetch Funktionen gefunden here.

Wenn Sie diese Funktionalität wirklich benötigen, können Sie sie wahrscheinlich selbst codieren. Deshalb bieten die meisten Sprachen die Möglichkeit, benutzerdefinierte Funktionen zu erstellen :-)

+0

Nun, es gibt Fälle, wo man * nicht * eine Reihe auf einmal bearbeiten will; vielmehr wäre es praktisch, das Ergebnis als Array für späteren Verbrauch zu speichern. Wie es aussieht, wenn ich diese Funktionalität will, muss ich das leere Array erstellen und dann jedes Ergebnis durchgehen und drücken; Es scheint, als sollte es einen bequemeren Weg geben, das zu tun. –

Verwandte Themen