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

PHP 基础教程

PHP 高级教程

PHP & MySQL

PHP 参考手册

PHP mysqli_free_result() 函数用法及示例

PHP MySQLi справочник

mysqli_free_result()函数释放结果内存。

定义和用法

一个PHP结果对象(mysqli_result类)表示由SELECT或DESCRIBE或EXPLAIN查询返回的MySQL结果。

mysqli_free_result()函数接受一个结果对象作为参数,并释放与它相关联的内存。

语法

mysqli_free_result($result);

参数

序号参数及说明
1

result(必需)

这是表示结果对象的标识符。

返回值

此函数不返回任何值。

PHP版本

此函数最初是在PHP版本5中引入的,并且可以在所有更高版本中使用。

Пример онлайн

以下示例演示了mysqli_free_result()函数的用法(面向过程风格),从结果集中获取行,然后释放结果集内存:

<?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("Создание таблицы.....\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");
   }
   //结束语句,释放内存
   mysqli_free_result($res);
   //Закрытие подключения
   mysqli_close($con);
?>

Результат вывода

Создание таблицы.....
Вставка записи.....
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("Создание таблицы.....\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");
//Конец инструкции
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");
}
//Закрытие подключения
mysqli_close($con);

Вы получите следующую ошибку:

Создание таблицы.....
Вставка записи.....
Содержание результатов...
PHP Предупреждение: mysqli_fetch_row(): Не удалось извлечь mysqli_result в E:\PHPExamples\procedure_oriented.php на строке 19
Предупреждение: mysqli_fetch_row(): Не удалось извлечь mysqli_result в E:\PHPExamples\procedure_oriented.php на строке 19

Пример онлайн

В стилистике面向对象的 программирования грамматика этой функции такая:$ result-> close();。Вот пример этой функции в стилистике面向对象的 программирования;

<?php
   //Установление подключения
   $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("Создание таблицы.....\n");
   $stmt = $con -> prepare( "SELECT * FROM Test WHERE Name in(?, ?)");
   $stmt -> bind_param("ss", $name1, $name2);
   $name1 = 'Raju';
   $name2 = 'Rahman';
   //Выполнение инструкции
   $stmt->execute();
   //Получение результата
   $result = $stmt->get_result();
   //Число строк
   $count = $result->num_rows;
   print("Число строк в результате: ".$count);
   //Закрытие результата
   $result->close();
   //Конец инструкции
   $stmt->close();
   //Закрытие подключения
   $con->close();
?>

Результат вывода

Создание таблицы.....
Число строк в результате: 2

PHP MySQLi справочник