Symptoms
Errors related to "mysql_connect" typically indicate that the script is outdated. Here's an example of the error:
PHP Fatal error: Uncaught Error: Call to undefined function mysql_connect() in /home/user/public_html/script.php:7
Description
This error is most commonly caused by the use of a modern PHP version on a website that uses the function, "mysql_connect" which was deprecated in PHP 5.5 and removed in PHP version 7.0. For more information, please review the official documentation at the following link:
Workaround
There are two solutions to this issue:
1. (Recommended) The website developer should review all of the PHP files and update the website code, "mysql_connect" should be replaced with "mysqli_connect." to be compatible with a supported PHP version as explained on the following PHP documentation page:
2. (Not recommended) The website's PHP version can be changed to use an older version that supports mysql_connect, such as PHP version 5.4. You may be able to use PHP 5.6, but you may see deprecation warnings.
The following article explains how to change PHP version for a domain:
How to change PHP version for a domain?
Alternative Causes
If the website is configured properly to use PHP 5.6 or older via MultiPHP Manager or CloudLinux's PHP selector, and you see the correct version in a phpinfo page, but are still seeing this error, this means the extension is not loaded. Here are some possible causes:
1. The mysqlnd extension is not installed.
To correct this, use the EasyApache 4 interface to install the correct extension on the PHP version, or use yum.
yum install ea-php56-php-mysqlnd
2. The website was configured with suPHP_ConfigPath
in EasyApache 3
Please review the following documentation page:
The cPanel PHPRC PHP Patch for EasyApache 4
- We strongly recommend that you do not set the
[phprc_paths]
section, thesuPHP_ConfigPath
directive or set the PHPRC environmental variable. Unexpected behavior may occur.
The solution here would be to modify the .htaccess file in the document root or above and remove the "suPHP_ConfigPath" directive. This causes only the user's php.ini file to be loaded instead of all of the ini files required to load the extensions.
3. The extension is not enabled in PHP Selector
If the server uses CloudLinux™, and MultiPHP Manager is set to "Inherit," and the user is in CageFS, this means that PHP Selector takes precedence. You will want to go into the PHP Selector options and make sure the "mysqlnd" extension is enabled.
Comments
0 comments
Article is closed for comments.