Mysqli fetch_assoc vs fetch_array

8

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?

    
Darren Sweeney 26.01.2014, 08:10
quelle

3 Antworten

17

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]

verwenden

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 $row[0] zu verwenden.

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.

    
Mr. Alien 26.01.2014, 08:20
quelle
8

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.

    
CodeSnippet 08.01.2015 19:29
quelle
2

(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.

    
user960401 11.09.2015 02:09
quelle

Tags und Links