Aktueller Standort: Startseite> Neueste Artikel> Der Unterschied und die Anwendung von MySQL_Fetch_array und mySQL_Fetch_row

Der Unterschied und die Anwendung von MySQL_Fetch_array und mySQL_Fetch_row

gitbox 2025-06-03

Wenn Sie mit PHP eine Verbindung zu MySQL -Datenbanken herstellen, gibt es viele Möglichkeiten, Fragenergebnisse zu erhalten. Mysql_fetch_array und mysql_fetch_row sind zwei häufig verwendete Funktionen. Sie können alle eine Reihe von Daten aus den Abfrageergebnissen erhalten, aber die zurückgegebene Datenstruktur und die anwendbaren Szenarien sind unterschiedlich. In diesem Artikel werden die Unterschiede zwischen diesen beiden Funktionen und ihren jeweiligen Anwendungsszenarien ausführlich erläutert.


1. Funktion Einführung

  • mysql_fetch_array ()

    Diese Funktion nimmt eine Zeile aus dem Ergebnis, die als assoziatives Array, ein numerisches Indexarray oder ein Array mit beiden angegeben ist. Sein Standardverhalten besteht darin, ein Array mit numerischen Indizes und zugehörigen Indizes zurückzugeben.

    Syntaxbeispiel:

     $row = mysql_fetch_array($result, MYSQL_BOTH);
    

    Der zweite Parameter kann sein:

    • MySQL_Assoc : Return nur assoziatives Array

    • MySQL_NUM : Geben Sie nur das numerische Indexarray zurück

    • MySQL_Both (Standard): Gibt sowohl assoziative als auch numerische Indexarrays zurück

  • mysql_fetch_row ()

    Diese Funktion nimmt eine Zeile aus dem Ergebnissatz und gibt sie als numerisches Indexarray zurück. Das heißt, das Ergebnis kann nur über einen numerischen Index zugegriffen werden und kann nicht mit einem Feldnamen zugegriffen werden.

    Syntaxbeispiel:

     $row = mysql_fetch_row($result);
    

2. Hauptunterschiede

Merkmal mysql_fetch_array MySQL_Fetch_row
Rückgabewerttyp Arrays, die standardmäßig den numerischen Index + zugeordneter Index zurückgeben (optional) Gibt das numerische Indexarray zurück
Zugriffsmethoden Zugriffsfeldnamen oder numerische Indizes Nur mit digitalen Indizes zugegriffen
Speicherverbrauch Größer (weil das Rückgabearray zwei Indizes enthält) Kleiner
Flexibilität Hoch, geeignet für Szenarien, in denen gleichzeitig numerische Indizes und zugehörige Indizes erforderlich sind Niedrig, nur für den digitalen Indexzugriff geeignet

3. Anwendungsszenarioanalyse

mysql_fetch_array

Geeignet für Szenarien, in denen beispielsweise flexibler Zugriff auf Felder erforderlich ist:

  • Die Daten müssen über den Feldnamen zugegriffen werden, und der Code ist lesbarer

  • Es ist erforderlich, sowohl numerische Index- als auch Feldnamenindex zu unterstützen, die eine bessere Kompatibilität aufweist

  • Die Datenmenge wird gelesen und die Speicherverbrauchsanforderungen sind nicht hoch

Beispiel:

 $result = mysql_query("SELECT id, name FROM users");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    echo "User ID: " . $row['id'] . ", Name: " . $row['name'] . "<br>";
}

MySQL_Fetch_row

Geeignet für Szenarien, in denen die Speicheranforderungen ausschließlich durch digitale Indizes erforderlich sind und nur zugreifen, wie z. B.:

  • Lesen Sie Big Data in Stapeln, um Speicherplatz zu sparen

  • Verarbeiten Sie nur die Felddaten in der Reihenfolge, ohne auf Feldnamen zugreifen müssen

  • Einfache Datenverarbeitung mit hohen Leistungsanforderungen

Beispiel:

 $result = mysql_query("SELECT id, name FROM users");
while ($row = mysql_fetch_row($result)) {
    echo "User ID: " . $row[0] . ", Name: " . $row[1] . "<br>";
}

4. Zusammenfassung

Funktion Vorteil Mangel
mysql_fetch_array Flexibler Zugriff, gute Code -Lesbarkeit Nimmt mehr Speicher an
MySQL_Fetch_row Niedrige Speicherverwendung, bessere Leistung Nur auf digitale Indizes zugegriffen, schlechte Code -Lesbarkeit

5. Code Beispielzusammenfassung

 // verwenden mysql_fetch_array Holen Sie sich das assoziative Array
$result = mysql_query("SELECT id, username FROM users");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    echo "ID: " . $row['id'] . ", Username: " . $row['username'] . "<br>";
}

// verwenden mysql_fetch_row Holen Sie sich das numerische Indexarray
$result = mysql_query("SELECT id, username FROM users");
while ($row = mysql_fetch_row($result)) {
    echo "ID: " . $row[0] . ", Username: " . $row[1] . "<br>";
}

6. Dinge zu beachten

  • Die MySQL_* -Serie von Funktionen wurde veraltet, und es wird empfohlen, stattdessen die MySQLI- oder PDO -Erweiterung zu verwenden.

  • Diese veralteten Funktionen sollten in neuen Projekten vermieden werden, um die Sicherheit und Wartbarkeit des Codes zu gewährleisten.