Heim > Artikel > Backend-Entwicklung > Wie kann man MySQLi-Ergebnismengen in PHP effizient durchlaufen?
Iterieren über MySQLi-Ergebnismengen
In PHP kann das Iterieren über die Ergebnisse einer MySQL-Abfrage mit der Methode mysqli_query() erreicht werden.
Um die Ergebnismenge der Abfrage „select uid from userbase“ zu durchlaufen, können Sie Folgendes verwenden Schleife:
$output = mysqli_query($mysqli, "select uid from userbase"); foreach ($output as $row) { echo $row['uid']; }
Diese Schleife ruft den UID-Wert für jede Zeile im Ergebnissatz korrekt ab und zeigt ihn an. Es nutzt die objektorientierte Syntax von MySQLi, die prägnanter und effizienter ist als die prozedurale Syntax.
Potenzielle Fehler
Der Fehler, den Sie in Ihrem Code festgestellt haben, könnte sein verursacht durch die Verwendung von fetch_array() mit dem Standardverhalten, eine Ergebnismenge zu generieren, die sowohl indizierte als auch assoziative Schlüssel (MYSQLI_BOTH) enthält. Um dies zu beheben, können Sie das gewünschte Verhalten angeben, indem Sie MYSQLI_ASSOC oder MYSQLI_NUM als zweites Argument für fetch_array() verwenden.
Alternativ können Sie die Verwendung von fetch_array() ganz vermeiden, indem Sie mysqli_query() als iterierbares Objekt verwenden, wodurch entfällt die Notwendigkeit, fetch_array() bei jeder Iteration aufzurufen Zeile.
Korrektur der Iteration
Der von Ihnen angegebene Code enthält auch ein falsches Iterationsschema. Die Variable $i sollte innerhalb der Schleife inkrementiert werden, um auf nachfolgende Zeilen im Ergebnissatz zuzugreifen, die mit Index 0 beginnen.
Daher wäre die korrekte Iteration mit fetch_array():
$i = 0; $output = mysqli_query($mysqli, "select uid from userbase"); while ($row = $output->fetch_array(MYSQLI_ASSOC)) { echo $row['uid']; $i++; }
Das obige ist der detaillierte Inhalt vonWie kann man MySQLi-Ergebnismengen in PHP effizient durchlaufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!