- PHP Basics
- Learn PHP
- PHP Comments
- PHP Data Types
- PHP Variables
- PHP Operators
- PHP echo
- PHP print
- PHP echo vs. print
- PHP if else
- PHP switch
- PHP for Loop
- PHP while Loop
- PHP do...while Loop
- PHP foreach Loop
- PHP break and continue
- PHP exit()
- PHP exit() vs. break
- PHP isset()
- PHP Arrays
- PHP print_r()
- PHP unset()
- PHP Strings
- PHP Functions
- PHP File Handling
- PHP File Handling
- PHP Open File
- PHP Create a File
- PHP Write to File
- PHP Read File
- PHP feof()
- PHP fgetc()
- PHP fgets()
- PHP Close File
- PHP Delete File
- PHP Append to File
- PHP Copy File
- PHP file_get_contents()
- PHP file_put_contents()
- PHP file_exists()
- PHP filesize()
- PHP Rename File
- PHP fseek()
- PHP ftell()
- PHP rewind()
- PHP disk_free_space()
- PHP disk_total_space()
- PHP Create Directory
- PHP Remove Directory
- PHP Get Files/Directories
- PHP Get filename
- PHP Get Path
- PHP filemtime()
- PHP file()
- PHP include()
- PHP require()
- PHP include() vs. require()
- PHP mysqli Tutorial
- PHP mysqli Tutorial
- PHP and MySQL Setup
- PHP mysqli: Create Database
- PHP mysqli: Create Table
- PHP mysqli: Insert Record
- PHP mysqli: Update Record
- PHP mysqli: Fetch Record
- PHP mysqli: Delete Record
- PHP mysqli: SignUp Page
- PHP mysqli: LogIn Page
- PHP mysqli: Store User Data
- PHP mysqli Functions
- PHP mysqli_connect()
- PHP mysqli_close()
- PHP mysqli_connect_errno()
- PHP mysqli_connect_error()
- PHP mysqli_query()
- PHP mysqli_fetch_row()
- PHP mysqli_fetch_assoc()
- PHP mysqli_fetch_array()
- PHP mysqli_free_result()
- PHP mysqli_error()
- PHP mysqli_prepare()
- PHP mysqli_stmt_bind_param()
- PHP mysqli_stmt_execute()
- PHP mysqli_stmt_fetch()
- PHP mysqli_stmt_store_result()
- PHP mysqli_stmt_num_rows()
- PHP mysqli_stmt_bind_result()
- PHP mysqli_stmt_get_result()
- PHP mysqli_result class
- PHP mysqli_report()
- PHP error_reporting()
- PHP mysqli_real_escape_string()
- PHP htmlspecialchars()
- PHP Misc Topics
- PHP Object Oriented
- PHP new Keyword
- PHP header()
- PHP getallheaders()
- PHP Cookies
- PHP Sessions
- PHP Date and Time
- PHP GET vs. POST
- PHP File Upload
- PHP Image Processing
PHP free_result() and mysqli_free_result()
This article is created to cover two functions of PHP, namely:
Both functions are used to free the stored result memory. The only difference is that free_result() is used with PHP mysqli object-oriented scripts, whereas mysqli_free_result() is used with PHP mysqli procedural scripts.
PHP free_result()
The PHP free_result() function frees the stored result memory for the specified or given statement handle in PHP mysqli object-oriented style. For example:
<?php
$server = "localhost";
$user = "root";
$pass = "";
$db = "codescracker";
$conn = new mysqli($server, $user, $pass, $db);
if($conn -> connect_errno)
{
echo "Database connection failed!<BR>";
echo "Reason: ", $conn -> connect_error;
exit();
}
$sql = "SELECT name, age FROM customer";
$result = $conn -> query($sql);
if($result)
{
while($row = $result -> fetch_row())
{
echo "Name: ", $row[0];
echo "<BR>";
echo "Age: ", $row[1];
echo "<HR>";
}
$result -> free_result();
}
else
{
echo "Something went wrong!<BR>";
echo "Error Description: ", $conn -> error;
}
$conn -> close();
?>
The output produced by the above PHP example on free_result() is shown in the snapshot given below:
Note: The mysqli() function is used to open a connection to the MySQL database server in object-oriented style.
Note: The new keyword is used to create a new object.
Note: The connect_errno is used to get or return the error code (if any) from the last connect call in object-oriented style.
Note: The connect_error is used to get the error description (if any) from the last connection in object-oriented style.
Note: The query() function is used to perform queries on the MySQL database in object-oriented style.
Note: The fetch_row() function is used to fetch and return the result as an enumerated array in object-oriented style.
Note: The error is used to return the description of the error (if any) from the most recent function call in object-oriented style.
Note: The close() function is used to close an opened connection in object-oriented style.
The above example can also be written as:
<?php
$conn = new mysqli("localhost", "root", "", "codescracker");
if(!$conn -> connect_errno)
{
$sql = "SELECT name, age FROM customer";
if($result = $conn -> query($sql))
{
while($row = $result -> fetch_row())
{
echo "Name: ", $row[0];
echo "<BR>";
echo "Age: ", $row[1];
echo "<HR>";
}
$result -> free_result();
}
}
$conn -> close();
?>
Since free_result() is used to free the stored result from the memory, the question is, what if we use free_result() before retrieving all the rows? Let's find out the answer using the example given below:
<?php
$conn = new mysqli("localhost", "root", "", "codescracker");
if(!$conn -> connect_errno)
{
$sql = "SELECT name, age FROM customer";
if($result = $conn -> query($sql))
{
while($row = $result -> fetch_row())
{
echo "Name: ", $row[0];
echo "<BR>";
echo "Age: ", $row[1];
echo "<HR>";
$result -> free_result();
}
}
}
$conn -> close();
?>
Note the free_result() inside the while loop. Now the output should be:
That is, after using the free_result() associated with $result, the stored result has been freed; therefore, we cannot fetch and get further rows from the database.
PHP mysqli_free_result()
The PHP mysqli_free_result() function frees the stored result memory for the specified or given statement handle in PHP mysqli procedural style. For example:
<?php
$conn = mysqli_connect("localhost", "root", "", "codescracker");
if(!mysqli_connect_errno())
{
$sql = "SELECT name, age FROM customer";
if($result = mysqli_query($conn, $sql))
{
while($row = mysqli_fetch_row($result))
{
echo "Name: ", $row[0];
echo "<BR>";
echo "Age: ", $row[1];
echo "<HR>";
}
mysqli_free_result($result);
}
}
mysqli_close($conn);
?>
Note: The mysqli_connect() function is used to open a connection to the MySQL database server in procedural style.
Note: The mysqli_connect_errno() function is used to get or return the error code (if any) from the last connect call in procedural style.
Note: The mysqli_query() function is used to perform queries on the MySQL database in procedural style.
Note: The mysqli_fetch_row() function is used to fetch and return the result as an enumerated array in procedural style.
Note: The mysqli_free_result() function is used to free the stored result in procedural style.
Note: The mysqli_close() function is used to close an opened connection to the MySQL database in procedural style.
« Previous Tutorial Next Tutorial »