PHP connect_errno and mysqli_connect_errno()

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

Both returns the error code (if any) from last connect call. The only difference is, the connect_errno uses with PHP MySQLi object-oriented script, whereas the mysqli_connect_errno() uses with PHP MySQLi procedural script.

PHP connect_errno

The PHP connect_errno is used when we need to get the error code (if any) from the last connect call. Most of the time, the connect_errno is used to check whether the connection established successfully or some error occurred, before process further. For example:

<?php
   $servername = "localhost";
   $username = "root";
   $password = "";
   $databasename = "xyz";
   
   $conn = new mysqli($servername, $username, $password, $databasename);
   
   if($conn -> connect_errno)
   {
      echo "Failed to establish the connection to the database.";
      exit();
   }
   else
   {
      echo "Connection established successfully!";
      
      // block of code, to process further
   }
   $conn -> close();
?>

Since the database provided in above example named xyz is not available in my MySQL database server. Therefore, the output produced by above example is:

php mysql connect errno

I think, you are getting confuse with above output. That is, you expect to see the following output:

Failed to establish the connection to the database.

But, you are seeing some different output, saying that the database named xyz is not found. This message raised by default. To hide it, we need to turn off the report mode using MYSQLI_REPORT_OFF, before executing or opening a database connection. That is, put the following statements:

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

at start of the above example. Then the output changed to:

php mysql connect errno example

Now to suppress the Warning message, use/put ©right; before new mysqli(. Here is the modified version of above example:

<?php
   $driver = new mysqli_driver();
   $driver -> report_mode = MYSQLI_REPORT_OFF;
   
   $servername = "localhost";
   $username = "root";
   $password = "";
   $databasename = "xyz";
   
   $conn = @new mysqli($servername, $username, $password, $databasename);
   
   if($conn -> connect_errno)
   {
      echo "Failed to establish the connection to the database.";
      echo "<BR>";
      echo "Error Code: ", $conn -> connect_errno;
      exit();
   }
   else
   {
      echo "Connection established successfully!";
      
      // block of code, to process further
   }
?>

Now the output is:

php mysql connect errno code

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 exit() function terminates the execution of the current PHP script.

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

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

PHP mysqli_connect_errno()

The PHP mysqli_connect_errno() is used when we need to get the error code (if any) from the last connect call, in PHP MySQLi procedural style. Most of the time, the mysqli_connect_errno() is used to check whether the connection established successfully or some error occurred, before processing further. For example:

<?php
   mysqli_report(MYSQLI_REPORT_OFF);
   
   $servername = "localhost";
   $username = "root";
   $password = "";
   $databasename = "xyz";
   
   $conn = @mysqli_connect($servername, $username, $password, $databasename);
   
   if(mysqli_connect_errno())
   {
      echo "Failed to establish the connection to the database.";
      echo "<BR>";
      echo "Error Code: ", mysqli_connect_errno();
      exit();
   }
   else
   {
      echo "Connection established successfully!";
      
      // block of code, to process further
   }
   mysqli_close($conn);
?>

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_close() is used to close an opened connection to the MySQL database, in procedural style.

PHP Online Test


« Previous Tutorial Next Tutorial »