English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP Basic Tutorial

PHP Advanced Tutorial

PHP & MySQL

PHP Reference Manual

PHP mysqli_free_result() function usage and example

PHP MySQLi Reference Manual

mysqli_free_result() function releases the result memory.

Definition and usage

A PHP result object (mysqli_result class) represents the MySQL result returned by a SELECT or DESCRIBE or EXPLAIN query.

mysqli_free_result()The function accepts a result object as a parameter and releases the memory associated with it.

Syntax

mysqli_free_result($result);

Parameter

Serial numberParameters and descriptions
1

result(required)

This is the identifier representing the result object.

Return value

This function does not return any value.

PHP version

This function was originally in PHP version5introduced and can be used in all higher versions.

Online example

The following examples demonstratemysqli_free_result()Function usage (procedural style), get rows from the result set, then release the result set memory:

<?php
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   mysqli_query($con, "CREATE TABLE myplayers(ID INT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255))");
   print("Create table.....\n");
   mysqli_query($con, "INSERT INTO myplayers values(1, 'Sikhar', 'Dhawan', 'Delhi', 'India')");
   mysqli_query($con, "INSERT INTO myplayers values(2, 'Jonathan', 'Trott', 'CapeTown', 'SouthAfrica')");
   mysqli_query($con, "INSERT INTO myplayers values(3, 'Kumara', 'Sangakkara', 'Matale', 'Srilanka')");
   print("插入记录.....\n");
   //检索表的内容
   $res = mysqli_query($con, "SELECT * FROM myplayers");
   print("Contents of the resultset...\n");
   //结果集的内容
   while ($row = mysqli_fetch_row($res)) {
      print("ID: ".$row[0]."\n");
      print("First_Name: ".$row[1]."\n");
      print("Last_Name: ".$row[2]."\n");
      print("Place_Of_Birth: ".$row[3]."\n");
      print("Country: ".$row[4]."\n");
   }
   //End statement, release memory
   mysqli_free_result($res);
   //Close connection
   mysqli_close($con);
?>

Output result

Create table.....
Inserting record.....
Contents of the resultset...
ID: 1
First_Name:  Sikhar
Last_Name: Dhawan
Place_Of_Birth: Delhi
Country: India
ID: 2
First_Name: Jonathan
Last_Name: Trott
Place_Of_Birth: CapeTown
Country: SouthAfrica
ID: 3
First_Name: Kumara
Last_Name: Sangakkara
Place_Of_Birth: Matale
Country: Srilanka

如果您尝试在将结果释放为后获取结果的内容-

$con = mysqli_connect("localhost", "root", "password", "mydb");
mysqli_query($con, "CREATE TABLE myplayers(ID INT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255))");
print("Create table.....\n");
mysqli_query($con, "INSERT INTO myplayers values(1, 'Sikhar', 'Dhawan', 'Delhi', 'India')");
mysqli_query($con, "INSERT INTO myplayers values(2, 'Jonathan', 'Trott', 'CapeTown', 'SouthAfrica')");
mysqli_query($con, "INSERT INTO myplayers values(3, 'Kumara', 'Sangakkara', 'Matale', 'Srilanka')");
print("插入记录.....\n");
//检索表的内容
$res = mysqli_query($con, "SELECT * FROM myplayers");
//End statement
mysqli_free_result($res);
print("结果集的内容...\n");
//结果集的内容
while ($row = mysqli_fetch_row($res)) {
   print("ID: ".$row[0]."\n");
   print("First_Name: ".$row[1]."\n");
   print("Last_Name: ".$row[2]."\n");
   print("Place_Of_Birth: ".$row[3]."\n");
   print("Country: ".$row[4]."\n");
}
//Close connection
mysqli_close($con);

You will receive the following error

Create table.....
Inserting record.....
Content of the result set...
PHP Warning: mysqli_fetch_row(): Couldn't fetch mysqli_result in E:\PHPExamples\procedure_oriented.php on line 19
Warning: mysqli_fetch_row(): Couldn't fetch mysqli_result in E:\PHPExamples\procedure_oriented.php on line 19

Online example

In the object-oriented style, the syntax of this function is$result-> close();.Here is an example of this function in an object-oriented style;

<?php
   //Establish connection
   $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("Create table.....\n");
   $stmt = $con -> prepare("SELECT * FROM Test WHERE Name in(?, ?)");
   $stmt -> bind_param("ss", $name1, $name2);
   $name1 = 'Raju';
   $name2 = 'Rahman';
   //Execute statement
   $stmt->execute();
   //Retrieve result
   $result = $stmt->get_result();
   //Number of rows
   $count = $result->num_rows;
   print("Number of rows in the result: ",$count);
   //Closing the result
   $result->close();
   //End statement
   $stmt->close();
   //Close connection
   $con->close();
?>

Output result

Create table.....
Number of rows in the result: 2

PHP MySQLi Reference Manual