MySQLi Procedural Functions
Last Updated :
13 Feb, 2023
MySQLi (MySQL Improved) provides procedural and object oriented interface to data and its management. The i extension MySQL functions allows the user to access its database servers. The MySQL improved extension is specially designed to work with MySQL version 4.1.13 and new versions.
Advantages of using prepared statements:
- Prepared statements are highly efficient specially to avoid SQL injection attacks.
- The prepared statements are used repeatedly. It also reduces parsing time and overheads as the preparation of query is done only once.
- The database parses, compiles, optimizes the query statement and stores the result.
- Binding parameters with the query minimizes overall bandwidth as the parameters are sent whenever required, instead of sending the whole query.
- Binding parameters with placeholders are safer and easier as the proper formatting is automatically done.
- By sending the placeholder values to MySQL Server, it follows the client-server protocol.
- It executes a particular query statement multiple times with different set of variables effectively reducing the cost.
- It also saves on data copying and conversion.
- Prepared statements are less prone to errors as the statement is parsed at first and then the parsed values are used by the server.
We cannot cover everything under this topic, but let us look into some of the important procedural functions
of MySQLi .
1. mysqli_connect():
As you know, before doing any database related operations, you need to establish a connection to the MySQL database server. If the connection is established successfully, then it returns a database connection resource identifier. If the connection encounters failure, then it just throws an error.
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
// Create database connection
mysqli_connect($host, $dbuser, $dbpass, $dbname);
// Check connection
if(mysqli_connect_error())
{
echo "Connection establishing failed!";
}
else
{
echo "Connection established successfully.";
}
?>
Output:
Connection established successfully.
2. mysqli_connect_error():
The MySQLi function throws an error when the connection is not made successfully and the function stores the error in previous call to mysqli_connect(). If no error is encountered , it returns NULL. If any error is encountered , then it returns an error message.
Note:
- To test mysqli_connect_error(), stop the MySQL server in XAMPP control panel and then call the above PHP code having mysqli_connect().
- If display_errors are enabled in PHP configuration, you can see an error of mysqli_connect_error() which returns the following message.
Connection failed as the target machine actively refused it.
Note:
In good programming practice , its better NOT to show any error messages. For troubleshooting purpose, use mysqli_connect_error() to log the error as mentioned in the below code .
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
// Create database connection
mysqli_connect($host, $dbuser, $dbpass, $dbname);
// Check connection
if(mysqli_connect_error())
{
echo "Connection establishing failed!";
}
else
{
echo "Connection established successfully.";
}
?>
3. mysqli_select_db():
This mySQLi function is used to change the default database for making a connection.
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
$dbtest = "GFG_TEST";
// Create database connection
$conn = mysqli_connect($host, $dbuser, $dbpass, $dbname);
//write some code for database "GFG"
// Change database to "GFG_TEST"
mysqli_select_db($conn,$dbtest);
// PHP code for database "GFG_TEST"...
mysqli_close($conn);
?>
Result:
This will change the current database to GFG_TEST
4. mysqli_debug():
Every web developer needs to refer to log files to start troubleshooting for improving the application performance. The above mySQLi function is used in the code for all debugging purposes.
php
<?php
//create a trace file in the localhost
mysqli_debug("d:t:o,/temp/client.trace");
?>
Note:
The user should compile the MySQL client library to make use of the above function to support debugging. This function on success will return TRUE.
5. mysqli_close():
This MySQLi function is used to close a previously connected database. This function will return TRUE on successful closing, otherwise it will return FALSE.
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
// Create database connection
$conn = mysqli_connect($host, $dbuser, $dbpass, $dbname);
//some php code
if(mysqli_close($conn))
echo "Connection closed successfully.";
?>
Output:
Connection closed successfully.
6. mysqli_prepare():
The above MySQLi function is used to prepare a MySQL query for execution. It returns a statement object for further operations and returns FALSE if some error occurs.
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
// Create database connection
$conn = mysqli_connect($host, $dbuser, $dbpass, $dbname);
// prepare the mysql query statement and bind parameters
$query = mysqli_prepare("INSERT INTO items_info (item_name, description)
VALUES (?, ?)");
$query->bind_param("ss", $itemname, $description);
// set parameters and execute
$itemname = "Shampoo";
$description = "Hairfall preventing protein shampoo";
$query->execute();
echo "New record inserted successfully";
mysqli_close();
?>
Output:
New record inserted successfully
7. mysqli_query():
This MySQLi function performs or executes the query on the given database.
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
// Create database connection
$conn = mysqli_connect($host, $dbuser, $dbpass, $dbname);
// performs the insert query
mysqli_query($conn,"INSERT INTO items_info (item_name, description)
VALUES ('Nailpolish', 'Colorbar Pink one')");
echo "Inserted successfully";
mysqli_close($conn);
?>
Output:
Inserted successfully
8. mysqli_rollback():
The mysqli function rollback the current transaction for the given database connection. Turn OFF the auto-commit, execute the query, then again commit the query and then rollback the current
transaction.
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
// Create database connection
$conn = mysqli_connect($host, $dbuser, $dbpass, $dbname);
// Set autocommit to off
mysqli_autocommit($conn,FALSE);
// performs the insert query
mysqli_query($conn,"INSERT INTO items_info (item_name, description)
VALUES ('Shoes', 'Adidas Brand')");
echo "Inserted successfully";
// Commit transaction
mysqli_commit($conn);
// Rollback transaction
mysqli_rollback($conn);
mysqli_close($conn);
?>
9. mysqli_fetch_row():
The above MySQLi function is used to fetch one row from the result-set as an enumerated array. Each call to the above function will return the next row from the result set. If no rows are fetched, then it returns FALSE.
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
// Create database connection
$conn = mysqli_connect($host, $dbuser, $dbpass, $dbname);
$query = "SELECT item_name,description from items_info";
if ($result=mysqli_query($conn,$query))
{
// Fetch one and one row
while ($row=mysqli_fetch_row($result))
{
echo " Item name :".$row[0]." , ";
echo " Description : ".$row[1];
echo nl2br (" \n ");
}//end while
// Free result set
mysqli_free_result($result);
}// end if
mysqli_close($conn);
?>
Result:
It will show all the rows with Item name , Description
10. mysqli_field_count():
The above MySQLi function is used to return the number of columns for the most recent query. It returns total number of columns in the result set.
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
// Create database connection
$conn = mysqli_connect($host, $dbuser, $dbpass, $dbname);
$query = "SELECT * from items_info";
mysqli_query($conn,$query);
$total_columns = mysqli_field_count($conn);
echo $total_columns;
mysqli_close($conn);
?>
Output:
4
11. mysqli_fetch_array():
The above MySQLi function is used to fetch a row as an associative, numeric array or both types of array from the result set.
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
// Create database connection
$conn = mysqli_connect($host, $dbuser, $dbpass, $dbname);
$query = "SELECT item_name,description from items_info";
$result=mysqli_query($conn,$query);
// Gets the Numeric array
$row=mysqli_fetch_array($result,MYSQLI_NUM);
echo " Item name :".$row[0];
echo ",";
echo " Description : ".$row[1];
echo nl2br (" \n ");
// Gets the Associative array
$row=mysqli_fetch_array($result,MYSQLI_ASSOC);
echo " Item name :".$row["item_name"];
echo ",";
echo " Description : ".$row["description"];
// Free the result set
mysqli_free_result($result);
mysqli_close($conn);
?>
Output:
table array
12. mysqli_fetch_all():
The MySQLi function fetches all rows and return the result set as an associative array, a numeric array, or both.
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
// Create database connection
$conn = mysqli_connect($host, $dbuser, $dbpass, $dbname);
$query = "SELECT item_name from items_info";
$result = mysqli_query($conn,$query);
$rowcount=mysqli_num_rows($result);
// Gets the Associative array
$row = mysqli_fetch_all($result,MYSQLI_ASSOC);
print_r($row);
for($i=0;$i<$rowcount;$i++)
{
echo "<br> ".$row[$i]['item_name'];
}
// Free the result set
mysqli_free_result($result);
mysqli_close($conn);
?>
Note: The above function is only available with MySQL Native Driver.
13. mysqli_free_result():
The above MySQLi function free the memory of the fetched rows of the result set.
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
// Create database connection
$conn = mysqli_connect($host, $dbuser, $dbpass, $dbname);
$query = "SELECT item_name,description from items_info";
if ($result=mysqli_query($conn,$query))
{
while ($row=mysqli_fetch_row($result))
{
echo " Item name :".$row[0].",";
echo " Description : ".$row[1];
echo nl2br (" \n ");
}//end while
// Free result set
mysqli_free_result($result);
}// end if
mysqli_close($conn);
?>
Output:
Item name :box, Description : square shaped box in red colour
14. mysqli_num_rows():
The above MySQLi function is used to return the number of rows of the result set.
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
// Create database connection
$conn = mysqli_connect($host, $dbuser, $dbpass, $dbname);
$query = "SELECT item_name,description from items_info";
if ($result=mysqli_query($conn,$query))
{
//It returns the total number of rows of the result set
$rowcount=mysqli_num_rows($result);
echo "Total number of rows of the result : ".$rowcount;
// Free result set
mysqli_free_result($result);
}// end if
mysqli_close($conn);
?>
Output:
Total number of rows of the result : 8
15. mysqli_affected_rows():
The above MySQLi function is used to return the total number of affected rows from the previous MySQL SELECT, INSERT, UPDATE, DELETE or REPLACE query.
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
// Create database connection
$conn = mysqli_connect($host, $dbuser, $dbpass, $dbname);
$query = "SELECT * FROM items_info";
// performs the query
mysqli_query($conn,$query);
echo "Total affected rows : ".mysqli_affected_rows($conn);
mysqli_close($conn);
?>
Output:
Total affected rows : 8
16. mysqli_get_server_info():
The above MySQLi function is used to return the MySQL server version.
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
// Create database connection
$conn = mysqli_connect($host, $dbuser, $dbpass, $dbname);
echo "The MySQL server version is : ".mysqli_get_server_info($conn);
mysqli_close($conn);
?>
Output:
The MySQL server version is : 5.6.21
17. mysqli_fetch_fields():
The above MySQLi function returns an array of objects which contains the information of columns of the result set.
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
// Create database connection
$conn = mysqli_connect($host, $dbuser, $dbpass, $dbname);
$query = "SELECT item_name,description FROM items_info";
if ($result=mysqli_query($conn,$query))
{
// Get the fields
$fields=mysqli_fetch_fields($result);
foreach ($fields as $value)
{
echo "Column name : ".$value->name."<br> ";
echo "Table name : ".$value->table."<br> ";
echo "Maximum length : ".$value->max_length."<br> ";
echo nl2br (" \n ");
}
// Free result set
mysqli_free_result($result);
}
mysqli_close($conn);
?>
Output:
Column name : item_name
Table name : items_info
Maximum length : 18
Column name : description
Table name : items_info
Maximum length : 35
18. mysqli_error():
The MySQLi function returns the error message for the last MySQL function call, if any error exists.
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
// Create database connection
$conn = mysqli_connect($host, $dbuser, $dbpass, $dbname);
if (mysqli_connect_errno())
{
echo "Connection to MySQL server failed : " . mysqli_connect_error();
}
$query = "INSERT INTO items_info (item_name) VALUES ('Jacket')";
// Check for error after performing the query
if (!mysqli_query($conn,$query))
{
echo("Error occurred : " . mysqli_error($conn));
}
?>
19. mysqli_autocommit():
This above MySQLi function is used in turning ON/OFF auto-committing database changes or operations.
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
// Create database connection
$conn = mysqli_connect($host, $dbuser, $dbpass, $dbname);
mysqli_autocommit($conn,FALSE);
// performs the insert query
mysqli_query($conn,"INSERT INTO items_info (item_name, description)
VALUES ('Clock', 'Wall clock for the living room')");
//Commit the query transaction
mysqli_commit($conn);
echo "Inserted successfully";
mysqli_close($conn);
?>
20. mysqli_error_list():
The MySQLi function returns list of error messages for the last MySQL function call, if any error exists.
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
// Create database connection
$conn = mysqli_connect($host, $dbuser, $dbpass, $dbname);
if (mysqli_connect_errno())
{
echo "Connection to MySQL server failed : " . mysqli_connect_error();
}
$query = "INSERT INTO items_info (item_name) VALUES ('Jacket')";
// Check for error after performing the query
if (!mysqli_query($conn,$query))
{
print_r(mysqli_error_list($conn));
}
?>
21. mysqli_begin_transaction():
The MySQLi function starts a transaction following the MySQL commands. It returns TRUE in case of successful execution, otherwise it returns FALSE.
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
// Create database connection
$conn = mysqli_connect($host, $dbuser, $dbpass, $dbname);
$query = "INSERT INTO items_info (item_name, description)
VALUES ('Bangles', 'Pink bangles')";
// performs the insert query
mysqli_begin_transaction($conn, MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT);
mysqli_query($conn,$query);
mysqli_commit($conn);
echo "Inserted successfully";
mysqli_close($conn);
?>
22. mysqli_change_user():
The MySQLi function is used to change the user of given database connection to the new database .
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
$other_dbname = "OTHER_GFG";
// Create database connection
$conn = mysqli_connect($host, $dbuser, $dbpass, $dbname);
// reset to new database
mysqli_change_user($conn, $dbuser,$dbpass, $other_dbname);
if ($result = mysqli_query($conn,"SELECT database()"))
{
$row = mysqli_fetch_row($result);
echo "Default database : ".$row[0];
}
mysqli_close($conn);
?>
Output:
Default database : OTHER_GFG
23. mysqli_character_set_name():
The MySQLi function is used to return the default character set selected for the database connection .
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
// Create database connection
$conn = mysqli_connect($host, $dbuser, $dbpass, $dbname);
$characterset = mysqli_character_set_name($conn);
echo "Default character set is: " . $characterset;
mysqli_close($conn);
?>
Output:
Default character set is: latin1
24. mysqli_real_escape_string():
The MySQLi function is used to escape special characters in a string for use in MySQL queries.
php
<?php
// Database configuration
$host = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
// Create database connection
$conn = mysqli_connect($host, $dbuser, $dbpass, $dbname);
$itemname = "mattress's";
$description = "Belongs to Mumbai's mall";
// escape variables
$itemname = mysqli_real_escape_string($conn,$itemname);
$description = mysqli_real_escape_string($conn, $description);
// performs the insert query
$query = "INSERT INTO items_info (item_name, description)
VALUES ('$itemname','$description')";
if (!mysqli_query($conn,$query)) {
die('Error: ' . mysqli_error($conn));
}
echo "One record added successfully";
mysqli_close($conn);
?>
Output:
One record added successfully
Similar Reads
RAND() Function in MySQL
The RAND() function in MySQL is used to a return random floating-point value V in the range 0 <= V < 1.0. If we want to obtain a random integer R in the range i <= R < j, we have to use the expression : FLOOR(i + RAND() * (j â i)). Syntax : RAND(N) Parameter : This method accepts only on
3 min read
PERIOD_ADD() function in MySQL
PERIOD_ADD() function in MySQL helps to add a specific number of months to a given period. The PERIOD_ADD() function will return the resultant value in 'YYYYMM' format. Syntax : PERIOD_ADD(period, number) Parameters : period - A period which should be in YYMM OR YYYYMM format. number - The number of
1 min read
PLSQL | REMAINDER Function
The REMAINDER function is an inbuilt function in PLSQL which is used to return the remainder of a divided by b. Syntax: REMAINDER(a, b) Parameters Used: This function accepts two parameters a and b which is used in calculating the remainder when a is divided by b. Return Value: This function returns
2 min read
SQRT() Function in MySQL
The SQRT() function in MySQL calculates the square root of a non-negative number, returning NULL for negative inputs. It is a built-in function that provides high precision and is optimized for performance and making it ideal for mathematical and scientific applications.In the article, we will cover
3 min read
MySQL | Creating stored function
The CREATE FUNCTION statement is used for creating a stored function and user-defined functions. A stored function is a set of SQL statements that perform some operation and return a single value. Just like Mysql in-built function, it can be called from within a Mysql statement. By default, the stor
2 min read
PHP mysqli_connect() Function
The mysqli_connect() function in PHP is a fundamental tool for establishing a connection to a MySQL database. This function is crucial for PHP applications that need to interact with MySQL databases, enabling them to execute queries, retrieve data, and perform various database operations.In this art
3 min read
PLSQL | SQRT Function
In PL/SQL, the SQRT function is used to find the square root of a number. This function is really handy for various tasks that involve mathematical calculations, such as analyzing statistics, solving geometry problems, or handling financial data. The SQRT function is easy to use and can simplify com
4 min read
PL/SQL Functions
PL/SQL functions are reusable blocks of code that can be used to perform specific tasks. They are similar to procedures but must always return a value. A function in PL/SQL contains:Function Header: The function header includes the function name and an optional parameter list. It is the first part o
4 min read
SQL General Functions
SQL general functions are built-in tools provided by SQL databases to perform a variety of operations on data. These functions are crucial for manipulating, analyzing, and transforming data efficiently.In this article, We will learn about the what are the SQL General Functions along with the example
5 min read
DIV() Function in MySQL
DIV() function : This function in MySQL is used to return a quotient (integer) value when integer division is done. For example, when 7 is divided by 3, then 2 will be returned. Syntax : SELECT x DIV y; Parameter : This method accepts two parameters as given below as follows. x - Specified dividend
1 min read