Wenn ich eine Zeile von einer Tabelle zurückgebe, verwende ich normalerweise die Ergebnisse, z. B .:
%Vor%Was ist der Unterschied zwischen diesen und:
%Vor%Gibt es einen Grund, einen zu verwenden, wenn nur eine Zeile zurückgegeben wird, oder ist es nur persönliche Vorliebe?
Es geht um Leistung
fetch_array()
gibt ein Array mit numerischen Schlüsseln und assoziativen Strings (Spaltennamen) zurück. Sie können also entweder $row['column_name']
oder $row[0]
Where as fetch_assoc()
gibt String-Indexed-Key-Array und kein numerisches Array zurück, so dass Sie hier keine Option haben, numerische Schlüssel wie zu verwenden. $row[0]
Also ist die letztere im Vergleich zu fetch_array()
besser in der Leistung und offensichtlich ist die Verwendung benannter Indizes im Vergleich zu numerischen Indizes viel besser.
fetch_array gibt den Wert mit Indizierung zurück. Aber Fetch_assoc gibt nur den Wert zurück.
zum Beispiel fetch_array gibt
zurück %Vor%here array location 0 enthält 11 auch dieser Positionsname ist 'id'.
Gleiche Dinge fetch_assoc wird zurückgeben
%Vor%bedeutet, dass nur der Wert zurückgegeben wird.
(PHP 5) Von: Ссылка
mysqli_result :: fetch_array - mysqli_fetch_array - Holt eine Ergebniszeile als assoziativ, numerisches Array oder beides
Somit können fetch_array()
und fetch_assoc()
im Wesentlichen äquivalente Aufrufe sein. Was die Leistung anbelangt, empfehle ich, den Aufruf zu verwenden, der zu besser lesbarem Code führt, und sich erst dann um die Leistung zu kümmern, nachdem Sie den Anruf eindeutig als Leistungsproblem identifiziert haben. Es ist wahrscheinlicher, dass Sie ernstere Leistungsprobleme haben, wo Sie sie am wenigsten erwarten.
Tags und Links php