Bei der Verwendung von PHP für Datenbankoperationen bietet die MySQLI -Erweiterung mehrere Möglichkeiten, um Abfrageergebnisse zu erhalten. Unter ihnen sind MySQLi_Result :: Fetch_column und MySQLi_Fetch_array zwei häufig verwendete, aber unterschiedliche Funktionen. Das Verständnis ihrer Unterschiede und anwendbaren Szenarien ist sehr wichtig, um einen effizienten und einfach zu machtenden Code zu schreiben.
Mysqli_Result :: fetch_column
Dies ist eine neue Methode, die zur PHP 8.1-Version hinzugefügt wurde, die zur mysqli_result -Klasse des objektorientierten Stils gehört. Es wird verwendet, um den Wert der angegebenen Spalte aus dem Ergebnissatz zu erhalten und die Daten eines einzelnen Feldes zurückzugeben.
Mysqli_fetch_array
Dies ist eine prozeduralorientierte Funktion, die alle Felddaten der aktuellen Zeile zurückgibt. Es gibt ein assoziatives Array, ein assoziatives Array, ein numerisches Indexarray oder sogar beides zurück, abhängig von den Parametereinstellungen.
Merkmal | Mysqli_Result :: fetch_column | Mysqli_fetch_array |
---|---|---|
Rückgabewert | Gibt den einzelnen Feldwert der angegebenen Spalte zurück | Gibt das Array der aktuellen Zeile zurück (Assoziation, numerischer Index oder beides) |
Verwenden Sie Stil | Objektorientiert | Prozessorientiert |
Rückgabetyp | Skalarwerte (Zeichenfolgen, Zahlen usw.) | Array |
Anwendbare Szenarien | Nur eine bestimmte Datenspalte speichert Speicher | Erfordert eine ganze Reihe von Daten, einschließlich mehrerer Spalten |
PHP -Versionsanforderungen | PHP 8.1 und höher | Unterstützen Sie frühere Versionen von PHP |
<?php
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
$result = $mysqli->query("SELECT id, name FROM users");
while ($id = $result->fetch_column(0)) { // Holen Sie sich die erste Spalte id
echo "BenutzerID: $id\n";
}
$mysqli->close();
?>
<?php
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
$result = $mysqli->query("SELECT id, name FROM users");
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
echo "BenutzerID: " . $row['id'] . ", Benutzer名: " . $row['name'] . "\n";
}
$mysqli->close();
?>
Wenn Sie sich nur um eine Spalte im Abfrageergebnis kümmern und PHP 8.1 und höher verwenden, ist Fetch_Column eine prägnantere und effizientere Wahl.
Es gibt direkt die Daten der angegebenen Spalte zurück, wodurch unnötiges Array -Overhead vermieden wird und den Code prägnanter wird.
Wenn Sie in der gesamten Zeile auf mehrere Felder zugreifen müssen oder Ihr Projekt immer noch PHP 8.0 und unten verwendet, ist die Verwendung von MySQLI_Fetch_array angemessener.
Es unterstützt mehr Rückgabetypen und bietet flexiblen Zugriff auf Felder.
Objektorientiertes vs prozessorientiert <br> Wenn Sie an eine objektorientierte Programmierung gewöhnt sind, wird empfohlen , $ result-> fetch_column () und andere objektorientierte Methoden von MySQLI_Result zu verwenden.
Andernfalls ist MySQLI_Fetch_array () immer noch eine klassische und weit verbreitete prozedurale Funktion.
Szene | Empfohlene Funktionen |
---|---|
Holen Sie sich nur ein einzelnes Feld (Einzelspalte) | Mysqli_Result :: fetch_column |
Holen Sie sich eine vollständige Aufzeichnung mehrerer Felder | mysqli_fetch_array oder $ result-> fetch_assoc () |
Kompatibel mit PHP 8.0 und darunter | Mysqli_fetch_array |
Bei der Auswahl einer Funktion sollten Sie Entscheidungen auf der Grundlage geschäftlicher Anforderungen und der PHP -Version treffen. Das Verständnis des Unterschieds zwischen den beiden kann dazu beitragen, präzise und effizientere Datenbankzugriffscode zu schreiben.