Uncaught error: Call to undefined function mysql_connect()
In this article, we will learn about the uncaught error “Uncaught error: Call to undefined function mysql_connect()”.
This error is encountered when we try to use “mysql_connect()” functions of php5 in php7.
PHP Fatal error: Uncaught Error: Call to undefined function mysql_connect() error is raised because mysql_* functions are completely removed from PHP 7, it previously got deprecated in PHP 5.5, but now it is completely removed.
The older MySQL function are removed due to the following reasons:
- Do not work on Object-Oriented concept
- Won't support transactions and prepared statements
- Insecure
How to fix Undefined Function Mysql_connect() error
There are four methods to fix undefined function Mysql_connect() error:
- Use MySQLi or PDO
- Connecting to Mysql with the Pdo Object Is Pretty Straight Forward
- Connecting to MySQL with MySqli Connection Object
- Rollback to Older PHP 5, update your code to mysqli or PDO and then upgrade to PHP7
1. Use MySQLi or PDO
mysqli_connect()
Instead of using “mysql_connect()” we should use “mysqli_connect()” in php7 to avoid this error.
Example: $mysql = new mysqli("localhost","root","password",''DB_name");
PDO(php database objects):
Example:$pdo = new PDO('mysql:host=localhost;dbname=database_name ', 'username', 'password');
//pdo requires a valid database to establish connection. If the database is not specified then it throws an exception.
2. Connecting to Mysql with the Pdo Object Is Pretty Straight Forward
$user = 'root'; // Mysql
User$password = ''; // Mysql Password
$server = 'localhost'; // Mysql Host
$database = 'my_database'; // Mysql Databse
// PDO Connection string
$pdo = new PDO("mysql:host=$server;dbname=$database", $user, $password);
3. Connecting to MySQL with MySqli Connection Object
$con = mysqli_connect('localhost', 'username', 'password', 'database');
4. Rollback to Older PHP 5, update your code to mysqli or PDO and then upgrade to PHP7
Best Practice
Use MySQLi wrapper and object mapper with prepared statements.
Example: User PHP-MySQLi-Database-Class https://github.com/ThingEngineer/PHP-MySQLi-Database-Class
By using MySQLi with prepare statement will secure your database connection & in future, if need to upgrade your Database to some other version, you won't have to update all you mysql connection string in all pages.
This package is free and customizable; you can upgrade by creating your Class & functions.