- PHP Basics
- Learn PHP
- PHP Comments
- PHP Data Types
- PHP Variables
- PHP Operators
- PHP echo
- PHP print
- PHP echo vs. print
- PHP if else
- PHP switch
- PHP for Loop
- PHP while Loop
- PHP do...while Loop
- PHP foreach Loop
- PHP break and continue
- PHP Arrays
- PHP print_r()
- PHP unset()
- PHP Strings
- PHP Functions
- PHP File Handling
- PHP File Handling
- PHP Open File
- PHP Create a File
- PHP Write to File
- PHP Read File
- PHP feof()
- PHP fgetc()
- PHP fgets()
- PHP Close File
- PHP Delete File
- PHP Append to File
- PHP Copy File
- PHP file_get_contents()
- PHP file_put_contents()
- PHP file_exists()
- PHP filesize()
- PHP Rename File
- PHP fseek()
- PHP ftell()
- PHP rewind()
- PHP disk_free_space()
- PHP disk_total_space()
- PHP Create Directory
- PHP Remove Directory
- PHP Get Files/Directories
- PHP Get filename
- PHP Get Path
- PHP filemtime()
- PHP file()
- PHP include()
- PHP require()
- PHP include() vs. require()
- PHP and MySQLi
- PHP and MySQLi
- PHP MySQLi Setup
- PHP MySQLi Create DB
- PHP MySQLi Create Table
- PHP MySQLi Connect to DB
- PHP MySQLi Insert Record
- PHP MySQLi Update Record
- PHP MySQLi Fetch Record
- PHP MySQLi Delete Record
- PHP MySQLi SignUp Page
- PHP MySQLi LogIn Page
- PHP MySQLi Store User Data
- PHP MySQLi Close Connection
- PHP Misc Topics
- PHP Object Oriented
- PHP new Keyword
- PHP Cookies
- PHP Sessions
- PHP Date and Time
- PHP GET vs. POST
- PHP File Upload
- PHP Image Processing
PHP connect_error and mysqli_connect_error()
This article is created to cover the two topics of PHP, that are:
- connect_error
- mysqli_connect_error()
Both returns error description (if any) from the last connection. The only difference is, the connect_error uses with PHP MySQLi object-oriented script, whereas the mysqli_connect_error() uses with PHP MySQLi procedural script.
PHP connect_error
The PHP connect_error is used when we need to get and print the error description raised by last connection error, while using PHP MySQLi object-oriented script to connect to the database. For example:
<?php $server = "localhost"; $user = "unknown"; $password = ""; $database = "fresherearth"; $conn = new mysqli($server, $user, $password, $database); if($conn->connect_errno) { echo "Database connection failed: ", $conn->connect_error; exit(); } $conn -> close(); ?>
Since the user unknown is not available as user of my MySQL database server. Therefore the output produced by above example is:
That is:
Fatal error: Uncaught mysqli_sql_exception: Access denied for user 'unknown'@'localhost' (using password: NO) in C:\xampp\htdocs\index.php:7 Stack trace: #0 C:\xampp\htdocs\index.php(7): mysqli->__construct('localhost', 'unknown', '', 'fresherearth') #1 {main} thrown in C:\xampp\htdocs\index.php on line 7
Now what I think is, you might expect the output, something like:
Database connection failed: ...... // i.e., followed by error description
Therefore, let me clear, the output you are watching, was produced by default. To hide/suppress those Fatal error, you need to turn off the error reporting, using the following two statements:
$driver = new mysqli_driver(); $driver -> report_mode = MYSQLI_REPORT_OFF;
That is, here is the modified version of above example:
<?php $driver = new mysqli_driver(); $driver -> report_mode = MYSQLI_REPORT_OFF; $server = "localhost"; $user = "unknown"; $password = ""; $database = "fresherearth"; $conn = @new mysqli($server, $user, $password, $database); if($conn->connect_errno) { echo "Database connection failed: ", $conn->connect_error; exit(); } // block of code to process further, on successful connection $conn -> close(); ?>
Now the output should be:
Note - The @ before new is written to suppress the default error.
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 exit() is used to terminate the execution of the current PHP script.
Note - The close() is used to close an opened connection, in object-oriented style.
Note - The mysqli_driver() is used to modify the error reporting mode, in object-oriented style.
PHP mysqli_connect_error()
The PHP mysqli_connect_error() is used when we need to get and print the error description raised by last connection error, while using PHP MySQLi procedural script to connect to the database. For example:
<?php mysqli_report(MYSQLI_REPORT_OFF); $server = "localhost"; $user = "unknown"; $password = ""; $database = "fresherearth"; $conn = @mysqli_connect($server, $user, $password, $database); if(mysqli_connect_errno()) { echo "Database connection failed: ", mysqli_connect_error(); exit(); } mysqli_close($conn); ?>
You will get the same output as of previous one, that is:
Database connection failed: Access denied for user 'unknown'@'localhost' (using password: NO)
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_close() is used to close an opened connection to the MySQL database, in procedural style.
« Previous Tutorial Next Tutorial »