Heim >Backend-Entwicklung >PHP-Tutorial >Können Sie mysqli_fetch_array() mehrmals für denselben Ergebnissatz wiederverwenden?

Können Sie mysqli_fetch_array() mehrmals für denselben Ergebnissatz wiederverwenden?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-02 14:48:031043Durchsuche

Can You Reuse mysqli_fetch_array() Multiple Times on the Same Result Set?

So verwenden Sie mysqli_fetch_array() mehrmals für dasselbe Ergebnis

Bei der Arbeit mit datenbankgesteuerten Apps ist es oft notwendig, iterativ zu verarbeiten zurückgegebene Datenzeilen. In MySQL spielt die Funktion mysqli_fetch_array() eine entscheidende Rolle beim Extrahieren von Daten aus Abfrageergebnissen. Eine häufige Herausforderung entsteht jedoch, wenn Sie mit mysqli_fetch_array() mehrmals versuchen, auf denselben Ergebnissatz zuzugreifen, was zu unerwartetem Verhalten führt.

Der Grund für dieses Problem liegt im Verhalten von mysqli_fetch_array(). Jeder Aufruf bewegt den Cursor innerhalb der Ergebnismenge in die nächste Zeile. Wenn Sie es also zweimal für dasselbe Ergebnis verwenden, erhalten Sie nur Zugriff auf die ersten beiden Zeilen. Um diese Einschränkung zu überwinden, müssen wir die Datenmanipulation von der Ausgabe trennen.

1. Erfassen Sie die Daten:

Der erste Schritt besteht darin, alle Daten in ein Array zu extrahieren:

<code class="php">$db_res = mysqli_query( $db_link, $sql );
$data = array();
while ($row = mysqli_fetch_assoc($db_res))
{
    $data[] = $row;
}</code>

Oder mit der fetch_all()-Methode von PHP 5.3:

<code class="php">$db_res = mysqli_query( $db_link, $sql );
$data   = $db_res->fetch_all(MYSQLI_ASSOC);</code>

2. Nutzen Sie die Daten mehrmals:

Sobald Sie sie in einem Array erfasst haben, können Sie diese mehrmals durchlaufen und so den Zugriff auf alle Zeilen sicherstellen:

<code class="php">// Top row
foreach ($data as $row)
{</code>

Das obige ist der detaillierte Inhalt vonKönnen Sie mysqli_fetch_array() mehrmals für denselben Ergebnissatz wiederverwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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