PHP mysqli_stmt_close() Function
Definition and Usage
The mysqli_stmt_close() function accepts a prepared statement object (previously opened) as a parameter, and closes it.
You cannot close persistent connections using this function.
Syntax
mysqli_stmt_close($stmt);
Parameters
| Sr.No | Parameter & Description |
|---|---|
| 1 |
stmt(Mandatory) This is an object representing a prepared statement. |
Return Values
The PHP mysqli_stmt_close() function returns a boolean value which is true on success and false on failure.
PHP Version
This function was first introduced in PHP Version 5 and works works in all the later versions.
Example
Assume we have created a table named employee in the MySQL database with the following contents $minus;
mysql> select * from employee; +------------+--------------+------+------+--------+ | FIRST_NAME | LAST_NAME | AGE | SEX | INCOME | +------------+--------------+------+------+--------+ | Vinay | Bhattacharya | 20 | M | 16000 | | Sharukh | Sheik | 25 | M | 18300 | | Trupthi | Mishra | 24 | F | 36000 | | Sheldon | Cooper | 25 | M | 12256 | | Sarmista | Sharma | 28 | F | 15000 | +------------+--------------+------+------+--------+ 5 rows in set (0.00 sec)
Following example demonstrates the usage of the mysqli_stmt_close() function (in procedural style) −
<?php
$con = mysqli_connect("localhost", "root", "password", "mydb");
$stmt = mysqli_prepare($con, "UPDATE employee set INCOME=INCOME-? where INCOME>?");
mysqli_stmt_bind_param($stmt, "si", $reduct, $limit);
$limit = 16000;
$reduct = 5000;
//Executing the statement
mysqli_stmt_execute($stmt);
print("Records Updated......\n");
//Closing the statement
mysqli_stmt_close($stmt);
//Closing the connection
mysqli_close($con);
?>
This will produce following result −
Records Updated......
After the execution of the above program the contents of the employee table will be as follows −
mysql> select * from employee; +------------+--------------+------+------+--------+ | FIRST_NAME | LAST_NAME | AGE | SEX | INCOME | +------------+--------------+------+------+--------+ | Vinay | Bhattacharya | 20 | M | 16000 | | Sharukh | Sheik | 25 | M | 13300 | | Trupthi | Mishra | 24 | F | 31000 | | Sheldon | Cooper | 25 | M | 12256 | | Sarmista | Sharma | 28 | F | 15000 | +------------+--------------+------+------+--------+ 5 rows in set (0.00 sec)
Example
In object oriented style the syntax of this function is $stmt->close(); Following is the example of this function in object oriented style $minus;
<?php
//Creating a connection
$con = new mysqli("localhost", "root", "password", "mydb");
//Creating a table
$con -> query("CREATE TABLE myplayers(ID INT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255))");
print("Table Created.....\n");
//Inserting values into the table using prepared statement
$stmt = $con -> prepare( "INSERT INTO myplayers values(?, ?, ?, ?, ?)");
$stmt -> bind_param("issss", $id, $fname, $lname, $pob, $country);
$id = 1;
$fname = 'Shikhar';
$lname = 'Dhawan';
$pob = 'Delhi';
$country = 'India';
//Executing the statement
$stmt->execute();
//Closing the statement
$stmt->close();
//Closing the connection
$con->close();
?>
This will produce following result −
Table Created.....
Example
You can also close a statement created by the mysqli_stmt_prepare() function −
<?php
$con = mysqli_connect("localhost", "root", "password", "mydb");
$query = "CREATE TABLE Test(Name VARCHAR(255), AGE INT)";
mysqli_query($con, $query);
print("Table Created.....\n");
//Initializing the statement
$stmt = mysqli_stmt_init($con);
mysqli_stmt_prepare($stmt, "INSERT INTO Test values(?, ?)");
mysqli_stmt_bind_param($stmt, "si", $Name, $Age);
$Name = 'Raju';
$Age = 25;
print("Record Inserted.....");
//Executing the statement
mysqli_stmt_execute($stmt);
//Closing the statement
mysqli_stmt_close($stmt);
//Closing the connection
mysqli_close($con);
?>
This will produce following result −
Table Created..... Record Inserted.....