Problématique
Lorsque vous mettez à jour votre site WordPress sous PHP 7, les erreurs suivantes peut apparaître :
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in ...wp-includes/wp-db.php:1665
Stack trace: #0 ...wp-includes/wp-db.php(632): wpdb->db_connect() #1 ...wp-includes/load.php(425)
Fatal error: Uncaught Error: Call to undefined function wp_kses_normalize_entities() in .../wp-includes/formatting.php:4316
Stack trace: #0 .../wp-includes/class-wp-fatal-error-handler.php(190)
D'où provient cette erreur ?
En passant à PHP 7.3 (ou plutôt à partir de PHP 7.0.0), l’extension mysql_connect a été supprimée. Celle-ci était déjà dépréciée depuis PHP 5.5.0.
Il est conseillé à la place d’utiliser les extensions mysqli afin de se connecter à une base de données. Cette extension est plus performante et plus sécurisée.
Que faire pour résoudre ce problème ?
Selon l’origine de l’erreur, plusieurs pistes de solutions sont à envisager :
- Contactez votre hébergeur et lui demander si les extensions mysqli sont activées
- Vérifiez que vous avez mysqi d’activée sur votre hébergement :
$var_mysqli = function_exists('mysqli_connect'); var_dump($var_mysqli);
- Testez votre connexion avec mysqli :
$mysqli_connection = new MySQLi('nom_d_hôte', 'nom_utilisateur', 'mot_de_passe', 'nom_de_la_base_de_données');
- Consultez votre fichier wp-config.php et vérifiez que la variable suivante :
define(‘WP_USE_EXT_MYSQL’, false);
soit bien définie sur “false”