Hello folks! welcome back to a new edition of our tutorial on PHP. In this tutorial guide, we are going to be studying about the PHP mysqli_get_warnings() Function.
The built-in mysqli_get_warnings() function in PHP returns the errors generated by the last executed query, in form of an array.
The built-in mysqli_get_warnings() function in PHP returns the errors generated by the last executed query, in form of an array.
Syntax
Following below is the syntax to use this function -
mysqli_get_warnings($con)
Parameter Details
Sr.No | Parameter & Description |
---|---|
1 | con(Mandatory) This is an object representing a connection to MySQL Server. |
Return Value
This built-in PHP function returns an array containing the warnings generated during the execution of the last query.
PHP Version
This PHP function was first introduced in PHP version 5 and it works in all the later versions.
Example1
Assume we have created a table named Emp as follows -
CREATE TABLE EMP( ID TINYINT, First_Name VARCHAR(50) Not NULL, Last_Name VARCHAR(10) Not NULL, Date_Of_Birth date, Salary Int(255) );
The following example demonstrates the usage of the PHP mysqli_get_warnings() function (in procedural style) -
<?php //Creating a connection $con = mysqli_connect("localhost", "root", "password", "mydb"); //Inserting a record into the employee table $sql = "INSERT IGNORE into emp values(1, 'Kennedy', NULL, DATE('1993-04-05'), 2566)"; mysqli_query($con, $sql); //Warnings $warnings = mysqli_get_warnings($con); print("Warning(s): "."\n"); print_r($warnings); $sql = "INSERT IGNORE into emp values (15, 'Precious', 'Amah', DATE('1995-02-22'), 9986), (15, NULL, 'Prince', DATE('1993-11-25'), 9986)"; mysqli_query($con, $sql); //Warnings $warnings = mysqli_get_warnings($con); print("\n"."Warning(s): "); print_r($warnings); //Closing the connection mysqli_close($con); ?>
Output
When the above code is executed, it will produce the following result -
Warning(s): mysqli_warning Object ( [message] => Column 'Last_Name' cannot be null [sqlstate] => HY000 [errno] => 1048 ) Warning(s): mysqli_warning Object ( [message] => Data truncated for column 'Last_Name' at row 1 [sqlstate] => HY000 [errno] => 1265 )
Example2
Following is another example of the PHP mysqli_get_warnings() function -
<?php //Creating a connection $con = mysqli_connect("localhost", "root", "password", "mydb"); //Query to DROP an unknown table mysqli_query($con, "drop table if exists WrongTable"); print("\n"."Warning(s): "."\n"); print_r(mysqli_get_warnings($con)); //Closing the connection mysqli_close($con); ?>
Output
When the above code is executed, it will produce the following result -
Warning(s): mysqli_warning Object ( [message] => Unknown table 'mydb.wrongtable' [sqlstate] => HY000 [errno] => 1051 )
Example3
You can also retrieve warnings one by one by making use of the next() function of the mysqli_warning class as follows $minus;
<?php //Creating a connection $con = new mysqli("localhost", "root", "password", "mydb"); //Inserting a record into the employee table $con -> query("INSERT IGNORE into emp values(105, NULL, 'Kennedy', DATE('1993-04-05'), 2566)"); if($con->warning_count){ $w = mysqli_get_warnings($con); do { echo "Warning: $w->errno: $w->message\n"; } while ($w->next()); } //Closing the connection $con -> close(); ?>
Output
When the above code is executed, it will produce the following result below -
Warning: 1048: Column 'First_Name' cannot be null Warning: 1265: Data truncated for column 'Last_Name' at row 1
Example4
You can try the following example below -
<?php $servername = "localhost"; $username = "root"; $password = "password"; $dbname = "mydb"; $conn = new mysqli($servername, $username, $password, $dbname); if (!$conn->real_connect($servername, $username, $password, $dbname)) { die('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error()); } print("Database connected" ."\n"); mysqli_query($conn, "CREATE TABLE sample (ID INT, Name VARCHAR(20))"); $query = "INSERT IGNORE INTO sample (id,name) VALUES( 1,'Nkpara Kennedy Chinaza')"; mysqli_query($conn, $query); $count = mysqli_warning_count($conn); print("No.Of warnings in the query:".$count."\n"); if ($count) { $warnings = mysqli_get_warnings($conn); print_r($warnings); } mysqli_close($conn); ?>
Output
When the above code is executed, if you verify the contents of the table test, you can see the inserted records as shown below -
Database connected No.Of warnings in the query:1 mysqli_warning Object ( [message] => Data truncated for column 'Name' at row 1 [sqlstate] => HY000 [errno] => 1265 )
Alright guys! This is where we are going to be rounding up for this tutorial post. In our next tutorial, we are going to be discussing about the PHP mysqli_info() Function.
Do feel free to ask your questions where necessary and we will attend to them as soon as possible. If this tutorial was helpful to you, you can use the share button to share this tutorial.
Do follow us on our various social media handles available and also subscribe to our newsletter to get our tutorial posts delivered directly to your emails.
Thanks for reading and bye for now.
Do feel free to ask your questions where necessary and we will attend to them as soon as possible. If this tutorial was helpful to you, you can use the share button to share this tutorial.
Do follow us on our various social media handles available and also subscribe to our newsletter to get our tutorial posts delivered directly to your emails.
Thanks for reading and bye for now.