Warum greife ich nur auf den ersten Wert in meinem MySQLi-Ergebnissatz zu?

Susan Sarandon
Freigeben: 2024-11-19 11:33:02
Original
797 Leute haben es durchsucht

Why Am I Only Accessing the First Value in My MySQLi Result Set?

Iterieren über Ergebnismengen in MySQLi

Beim Arbeiten mit Ergebnismengen in MySQLi kann es zu einem Problem kommen, bei dem nur auf den ersten Wert zugegriffen werden kann während der Iteration. Dies ist typischerweise auf die Verwendung von fetch_array() und ein falsches Verständnis seines Verhaltens zurückzuführen.

Standardverhalten von fetch_array()

Standardmäßig gibt fetch_array() ein Array mit beiden zurück indizierte und assoziative Schlüssel, bekannt als MYSQLI_BOTH. Um eine Ergebnismenge nur mit indizierten oder assoziativen Schlüsseln anzugeben, verwenden Sie MYSQLI_NUM bzw. MYSQLI_ASSOC.

Alternativen zu fetch_array()

Anstatt sich auf fetch_array() zu verlassen, Ziehen Sie effizientere und prägnantere Alternativen in Betracht:

  • Assoziative Arrays (MYSQLI_ASSOC):Zugriff auf Werte mithilfe des Spaltennamens als Schlüssel:
while ($row = $output->fetch_array(MYSQLI_ASSOC)) {
    echo $row['uid'];
}
Nach dem Login kopieren
  • Indizierte Arrays (MYSQLI_NUM):Zugriff auf Werte nach Index:
while ($row = $output->fetch_array(MYSQLI_NUM)) {
    echo $row[0];
}
Nach dem Login kopieren
  • Objektorientierte Iteration:Iterieren Sie über das Ergebnis Als iterierbares Objekt festgelegt, wodurch die Notwendigkeit von fetch_array() entfällt:
foreach ($output as $row) {
    echo $row['uid'];
}
Nach dem Login kopieren

Fehlerbehebung bei der Iteration

Die Verwendung von $i zum Inkrementieren durch indizierte Schlüssel ist nicht möglich geeignet für Ergebnismengen mit assoziativen Schlüsseln. Beispielsweise kann die Ergebnismenge Werte in der folgenden Struktur haben:

[
    0 => [0 => 1, 'uid' => 1],
    1 => [0 => 2, 'uid' => 2],
    2 => [0 => 3, 'uid' => 3]...
]
Nach dem Login kopieren

In diesem Szenario ist $row[1] in nachfolgenden Iterationen nicht vorhanden, was zu dem Problem führt.

Das obige ist der detaillierte Inhalt vonWarum greife ich nur auf den ersten Wert in meinem MySQLi-Ergebnissatz zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage