English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Die mysqli_free_result()-Funktion gibt den Ergebnisspeicher frei.
Ein PHP-Ergebnisobjekt (mysqli_result-Klasse) stellt die MySQL-Ergebnisse dar, die von einer SELECT- oder DESCRIBE- oder EXPLAIN-Abfrage zurückgegeben werden.
mysqli_free_result()Die Funktion akzeptiert ein Resultatobjekt als Parameter und gibt das damit verbundene Speicher freigeben.
mysqli_free_result($result);
Nummer | Parameter und Beschreibung |
---|---|
1 | result (erforderlich) Dies ist die Identifikation des Resultatobjekts. |
Diese Funktion gibt keinen Wert zurück.
Diese Funktion wurde ursprünglich in der PHP-Version5eingeführt und kann in allen höheren Versionen verwendet werden.
Nachfolgender Beispiel zeigtmysqli_free_result()Verwendung der Funktion (prozeduraler Stil), Zeilen aus dem Ergebnissatz abrufen und dann den Ergebnissatz-Speicher freigeben:
<?php $con = mysqli_connect("localhost", "root", "password", "mydb"); mysqli_query($con, "CREATE TABLE myplayers(ID INT, Vorname VARCHAR(255), Nachname VARCHAR(255), Geburtsort VARCHAR(255), Land VARCHAR(255))"); print("Tabelle erstellen.....\n"); mysqli_query($con, "INSERT INTO myplayers values(1, 'Sikhar', 'Dhawan', 'Delhi', 'India')"); mysqli_query($con, "INSERT INTO myplayers values(2, 'Jonathan', 'Trott', 'Cape Town', 'South Africa')"); mysqli_query($con, "INSERT INTO myplayers values(3, 'Kumara', 'Sangakkara', 'Matale', 'Sri Lanka')"); print("Erfolgreich eingefügte Zeile...\n"); //Inhalt der Tabelle abrufen $res = mysqli_query($con, "SELECT * FROM myplayers"); print("Inhalte des Ergebnissatzes...\n"); //Inhalt der Ergebnismenge while ($row = mysqli_fetch_row($res)) { print("ID: ".$row[0]."\n"); print("Vorname: ".$row[1]."\n"); print("Nachname: ".$row[2]."\n"); print("Geburtsort: ".$row[3]."\n"); print("Land: ".$row[4]."\n"); } //Ende der Anweisung, Speicher freigeben mysqli_free_result($res); //Verbindung schließen mysqli_close($con); ?>
Ausgabeergebnis
Tabelle erstellen..... Eingabezeile..... Inhalte des Ergebnissatzes... ID: 1 First_Name: Sikhar Nachname: Dhawan Geburtsort: Delhi Land: India ID: 2 Vorname: Jonathan Nachname: Trott Geburtsort: Cape Town Land: South Africa ID: 3 Vorname: Kumara Nachname: Sangakkara Geburtsort: Matale Land: Sri Lanka
Wenn Sie versuchen, den Inhalt der Ergebnismenge abzurufen, nachdem Sie die Ergebnisse freigegeben haben-
$con = mysqli_connect("localhost", "root", "password", "mydb"); mysqli_query($con, "CREATE TABLE myplayers(ID INT, Vorname VARCHAR(255), Nachname VARCHAR(255), Geburtsort VARCHAR(255), Land VARCHAR(255))"); print("Tabelle erstellen.....\n"); mysqli_query($con, "INSERT INTO myplayers values(1, 'Sikhar', 'Dhawan', 'Delhi', 'India')"); mysqli_query($con, "INSERT INTO myplayers values(2, 'Jonathan', 'Trott', 'Cape Town', 'South Africa')"); mysqli_query($con, "INSERT INTO myplayers values(3, 'Kumara', 'Sangakkara', 'Matale', 'Sri Lanka')"); print("Erfolgreich eingefügte Zeile...\n"); //Inhalt der Tabelle abrufen $res = mysqli_query($con, "SELECT * FROM myplayers"); //Anweisung beenden mysqli_free_result($res); print("Inhalt der Ergebnismenge...\n"); //Inhalt der Ergebnismenge while ($row = mysqli_fetch_row($res)) { print("ID: ".$row[0]."\n"); print("Vorname: ".$row[1]."\n"); print("Nachname: ".$row[2]."\n"); print("Geburtsort: ".$row[3]."\n"); print("Land: ".$row[4]."\n"); } //Verbindung schließen mysqli_close($con);
Sie erhalten die folgenden Fehler
Tabelle erstellen..... Eingabezeile..... Inhalt der Ergebnismenge... PHP-Warnung: mysqli_fetch_row(): Konnte mysqli_result nicht in E:\PHPExamples\procedure_oriented.php Zeile 19 Warnung: mysqli_fetch_row(): Konnte mysqli_result nicht in E:\PHPExamples\procedure_oriented.php Zeile 19
In der objektorientierten Syntax ist die Syntax dieser Funktion$result-> close();.Hier ist ein Beispiel für diese Funktion im objektorientierten Stil;
<?php //Verbindung herstellen $con = new mysqli("localhost", "root", "password", "mydb"); $con -> query("CREATE TABLE Test(Name VARCHAR(255), AGE INT)"); $con -> query("insert into Test values('Raju', 25),('Rahman', 30),('Sarmista', 27); print("Tabelle erstellen.....\n"); $stmt = $con -> prepare("SELECT * FROM Test WHERE Name in(?, ?)"); $stmt -> bind_param("ss", $name1, $name2); $name1 = 'Raju'; $name2 = 'Rahman'; //Anweisung ausführen $stmt->execute(); //Ergebnis abrufen $result = $stmt->get_result(); //Zeilenanzahl $count = $result->num_rows; print("Ergebniszeilen: ".$count); //Ergebnis schließen $result->close(); //Anweisung beenden $stmt->close(); //Verbindung schließen $con->close(); ?>
Ausgabeergebnis
Tabelle erstellen..... Ergebniszeilen: 2