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($result, 9);
$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