Das mysqli_fetch_array()-Dilemma lösen
Der Versuch, mysqli_fetch_array() mehrmals für denselben Ergebnissatz zu verwenden, kann dazu führen, dass auf die Daten nicht zugegriffen werden kann. Dies liegt daran, dass mysqli_fetch_array() das Ergebnis inkrementell verbraucht.
Trennung der Datenmanipulation
Um dieses Problem zu vermeiden, trennen Sie die Datenmanipulation von der Ausgabe. Hier ist ein verbesserter Ansatz:
1. Datenauswahl
$db_res = mysqli_query($db_link, $sql); $data = array(); while ($row = mysqli_fetch_array($db_res, MYSQLI_ASSOC)) { $data[] = $row; }
Alternativ können Sie fetch_all() in PHP 5.3 verwenden:
$db_res = mysqli_query($db_link, $sql); $data = $db_res->fetch_all(MYSQLI_ASSOC);
Dieser Schritt ruft die gesamte Ergebnismenge in einem Array ab, $data.
2. Datennutzung
Jetzt können Sie $data mehrmals durchlaufen, ohne dass sich dies auf die Ergebnismenge auswirkt.
Oberste Zeile
foreach ($data as $row) {
Das obige ist der detaillierte Inhalt vonWarum schlägt mysqli_fetch_array() bei wiederholter Verwendung fehl und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!