Hauptmenü

Untermenü

MySQLi - Methoden - MySQLi_Result

1. Die Datenerfassung

Wie der Name schon sagt (und ich auch), ist diese Klasse dafür zuständig, die Daten aus einer Anfrage zu holen. Also diese fetch_irgendwas-Sache. Dabei gibt es unterschiedliche Methoden, deren Wirkungsweise von der normalen MySQL-Erweiterung bekannt sein sollte. Ich selber zeige euch die Vorgehensweise anhand eines Beispiels.

fetch_assoc

Da ich bei der normalen MySQL-Erweiterung fast immer die namensähnliche Funktion genommen habe, greife ich auf die zurück. Zunächst mal das übliche Zeug.


// Objektorientiert
$mysqli = new mysqli('host''user''pw''db');
$query  'SELECT bla FROM blubb WHERE id > 20';
$result $mysqli->query($query);

// Prozedural
$mysqli mysqli_connect('host''user''pw''db');
$query  'SELECT bla FROM blubb WHERE id > 20';
$result mysqli_query($mysqli$query);

In der Variable $result befindet sich nun die Ressourcenkennung/Referenz auf die Abfrage. Und die benötigt man, um sich in einer Schleife die Daten zu holen. Und das war es auch schon.


// Objektorientiert
while ($row $result->fetch_assoc()) {
  ...
}

// Prozedural
while ($row mysqli_fetch_assoc($result)) {
  ...
}

Und das gibt es auch mit fetch_all, fetch_row, fetch_object und was weiß ich nicht alles.

2. Noch ein paar Methoden

data_seek

Damit kann man zu bestimmten Datensätzen springen. Ist in der einen oder anderen Situation sicher ganz hilfreich.


// Objektorientiert
$query  'SELECT bla FROM blubb WHERE id > 20';
$result $mysqli -> query($query);
// Springt zum 10. Eintrag
$result -> data_seek(9);
$row_1  $result -> fetch_assoc();
// Springt zum 20. Eintrag
$result -> data_seek(19);
$row_2  $result -> fetch_assoc();

// Prozedural
...
mysqli_data_seek($result9);
$row_1  mysqli_fetch_assoc($result);

free

Räumt das Ergebnis einer Abfrage aus dem Speicher.


// Objektorientiert
$query  'SELECT bla FROM blubb WHERE id > 20';
$result $mysqli -> query($query);
...
$result -> close();

// Prozedural
$result mysqli_query($query);
mysqli_free_result($result);

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt