PHP error and mysqli_error()

This article is created to cover the two topics of PHP, that are:

Both are used to return the description of error (if any), by the most recent function call. The only difference is, the error uses with PHP MySQLi object-oriented script, whereas the mysqli_error() is uses with PHP MySQLi procedural script.

PHP error

The PHP error returns the description of the error (if any), by the most recent function call, in PHP MySQLi object-oriented style. For example:

<?php
   $driver = new mysqli_driver();
   $driver->report_mode = MYSQLI_REPORT_OFF;
   
   $servername = "localhost";
   $username = "root";
   $password = "";
   
   $conn = new mysqli($servername, $username, $password);
   
   if($conn->connect_errno)
   {
      echo "Database connection failed!<BR>";
      echo "Reason: ", $conn->connect_error;
      exit();
   }
   
   $table = "myTable";
   $sql = "INSERT INTO $table (Name, City) VALUES ('Jackson', 'Vancouver')";
   $qry = $conn->query($sql);
   if($qry)
   {
      // block of code to process further
      // if everything is fine
   }
   else
   {
      echo "Error occurred while executing the query.<BR>";
      echo "Reason: ", $conn->error;
   }
   $conn->close();
?>

The output produced by above PHP example on error, is shown in the snapshot given below:

php error

That is:

Error occurred while executing the query.
Reason: No database selected

Because, while opening the connection, I have not provided the database. Therefore, while executing the query to insert some data into the table named myTable, has not executed, as the database has not selected.

Note - The mysqli_driver() is used to modify the error reporting mode, in object-oriented style.

Note - The mysqli() 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/return the error code (if any) from last connect call, in object-oriented style.

Note - The connect_error is used to get the error description (if any) from last connection, in object-oriented style.

Note - The query() is used to perform query on the MySQL database, in object-oriented style.

Note - The close() is used to close an opened connection, in object-oriented style.

Now let me insert and select the database say fresherearth, and re-execute the above PHP script:

<?php
   $driver = new mysqli_driver();
   $driver->report_mode = MYSQLI_REPORT_OFF;
   
   $conn = new mysqli("localhost", "root", "", "fresherearth");
   
   if(!$conn->connect_errno)
   {
      if(!$conn->query("INSERT INTO myTable (Name, City) VALUES ('Jackson', 'Vancouver')"))
      {
         echo "Error occurred while executing the query.<BR>";
         echo "Reason: ", $conn->error;
      }
   }
   $conn->close();
?>

Since the table myTable is not available in my database named fresherearth. Therefore, the output should be:

Error occurred while executing the query.
Reason: Table 'fresherearth.mytable' doesn't exist

Saying that the table mytable does not exists in the database fresherearth.

The following two statements:

$driver = new mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_OFF;

are used to off the error reporting, to show you the custom error message defined by me/developer.

PHP error Syntax

The syntax of error in PHP, is:

connectionVariable -> error

PHP mysqli_error()

The PHP mysqli_error() returns the description of the error (if any), by the most recent function call in PHP MySQLi procedural style. For example:

<?php
   mysqli_report(MYSQLI_REPORT_OFF);
   
   $conn = mysqli_connect("localhost", "root", "", "fresherearth");
   
   if(!mysqli_connect_errno())
   {
      if(!mysqli_query($conn, "INSERT INTO myTable (Name, City) VALUES ('Jackson', 'Vancouver')"))
      {
         echo "Error occurred while executing the query.<BR>";
         echo "Reason: ", mysqli_error($conn);
      }
   }
   mysqli_close($conn);
?>

You will get the same output as of previous one.

Note - The mysqli_report() is used to modify the error reporting mode, in procedural style.

Note - The mysqli_connect() is used to open a connection to the MySQL database server, in procedural style.

Note - The mysqli_connect_errno() is used to get/return the error code (if any) from last connect call, in procedural style.

Note - The mysqli_query() is used to perform query on the MySQL database, in procedural style.

Note - The mysqli_close() is used to close an opened connection to the MySQL database, in procedural style.

PHP mysqli_error() Syntax

The syntax of mysqli_error() function in PHP, is:

mysqli_error(connectionVariable)

PHP Online Test


« Previous Tutorial Next Tutorial »