Fatal error avec mysql_connect après avoir mis PHP 7

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”

Laisser un Commentaire

Votre adresse électronique ne sera pas publiée.

Vous pourriez aussi aimer