Aktueller Standort: Startseite> Neueste Artikel> MySQLi_Result :: data_seek und mySQLi_Fetch_assoc kombiniert mit

MySQLi_Result :: data_seek und mySQLi_Fetch_assoc kombiniert mit

gitbox 2025-05-26

Wenn wir PHP zum Betrieb einer MySQL -Datenbank verwenden, erhalten wir häufig Abfrageergebnisse über MySQLI_Query und verwenden dann MySQLI_Fetch_assoc, um die Datenzeile nach Zeile zu lesen. Wenn Sie im Ergebnis -Set zu einer Zeile springen möchten und die Daten lesen möchten, ist MySQLI_Result :: Data_seek nützlich.

In diesem Artikel wird erläutert, wie Sie MySQLI_Result :: Data_seek und MySQLI_Fetch_assoc verwenden, um die angegebenen Zeilendaten im Ergebnissatz zu lesen.


Grundkonzepte

  • MySQLI_Result :: data_seek (int $ offset) : Verschiebt den internen Zeiger des Ergebniss auf die angegebene Zeile (Zählung von 0).

  • mysqli_fetch_assoc (MySQLi_Result $ Ergebnis) : Holen Sie sich eine Datenreihe aus der aktuellen Zeigerposition und geben Sie das assoziative Array zurück.

Szenarien verwenden

Angenommen, Sie führen eine Abfrage aus, erhalten mehrere Ergebnisse und möchten zufällig auf eine bestimmte Datenreihe zugreifen, anstatt sie in der Reihenfolge zu lesen.


Codebeispiel

 <?php
// Stellen Sie eine Verbindung zur Datenbank her
$mysqli = new mysqli("gitbox.net", "username", "password", "database");

// Überprüfen Sie die Verbindung
if ($mysqli->connect_error) {
    die("Verbindung ist fehlgeschlagen: " . $mysqli->connect_error);
}

// Eine Frage ausführen
$sql = "SELECT id, name, email FROM users";
$result = $mysqli->query($sql);

if ($result && $result->num_rows > 0) {
    // Angenommen, wir wollen das lesen3Zeilendaten(Index von0Start,Das heißt,3Zeile ist Index2)
    $targetRow = 2;

    // Bewegen Sie den Zeiger in die Zielzeile
    $result->data_seek($targetRow);

    // Lesen Sie Daten aus der aktuellen Zeile
    $row = $result->fetch_assoc();

    // Ausgabedaten
    echo "ID: " . $row['id'] . "\n";
    echo "Name: " . $row['name'] . "\n";
    echo "Email: " . $row['email'] . "\n";
} else {
    echo "Es wurden keine Daten gefunden";
}

// Schließen Sie die Verbindung
$mysqli->close();
?>

Schlüsselnotizen

  1. Data_seek -Funktion
    Data_Seek soll den Zeiger Set Set auf die angegebene Zeile suchen. Wenn das nächste Mal fetch_assoc aufgerufen wird, wird er aus dieser Zeile gelesen.

  2. Linienindex beginnt bei 0 <br> Die Zeilenindexzahl beginnt bei 0. Wenn Sie die erste Zeile lesen möchten, data_seek (0) ; Die dritte Zeile ist Data_seek (2) .

  3. Anwendbare Szenariobeschränkungen <br> Data_seek kann nur verwendet werden, wenn ein Ergebnissatz verwendet wird, das die Pufferung unterstützt. Standardmäßig gibt MySQLI_Query ein gepuffertes Ergebnissatz zurück.


Zusammenfassen

Durch die Kombination von MySQLI_Result :: Data_seek und MySQLI_Fetch_assoc können Sie flexibel springen, um eine Datenreihe im Ergebnissatz zu lesen, wodurch der Leistungsaufwand des Durchquerens des gesamten Ergebnissatzes vermieden wird. Wenn Sie diese Technik beherrschen, können Sie effizientere Datenbankzugriffscode schreiben.