Compilé PHP 7 manque l'extension mysql dans WordPress

J'ai construit PHP 7 avec une configuration qui a fonctionné pour une version précédente de PHP. Maintenant mes sites WordPress reçoivent le message:

votre installation PHP semble manquer L'extension MySQL qui est requise par WordPress.

les autres sites utilisant mysqli fonctionnent. Ce qui me manque?

j'ai également inclus .donc les fichiers avec mysql dans le nom:

extension=dba.so
extension=mysql.so
extension=mysqli.so
extension=mysqlnd_mysql.so
extension=mysqlnd_mysqli.so
extension=mysqlnd.so
extension=pdo.so
extension=pdo_mysql.so
extension=pdo_odbc.so
extension=odbc.so
19
demandé sur user550385 2015-12-15 16:00:09

6 réponses

Comme il a été mentionné ailleurs, l' ext/mysql fonctions ont été supprimées. Nous avons été parler de cela pendant un certain temps.

ext / mysql a été construit pour MySQL 3.23 et n'a reçu que très peu d'ajouts depuis lors, tout en gardant la compatibilité avec cette ancienne version qui rend le code un peu plus difficile à maintenir.

si vous êtes déterminé à les remettre en place, vous pouvez les ajouter à PHP 7 en utilisant le ext / mysql PECL Bibliothèque

Il est important de noter que Wordpress 3.9 ou version ultérieure prend en charge mysqli

dans WordPress 3.9, nous avons ajouté une couche supplémentaire à WPDB, ce qui l'a amené à passer à l'utilisation de la bibliothèque PHP mysqli, en utilisant PHP 5.5 ou plus.

7
répondu Machavity 2017-05-23 12:34:28

PHP 7 a supprimé mysql_ * complètement.

vous devez utiliser PDO ou mysqli. Wordpress semble ne pas supporter cela.

17
répondu KiwiJuicer 2015-12-15 13:35:08

mysql_* les fonctions ont été supprimées dans PHP 7.0 mettez votre code à jour vers mysqli ou AOP

jetez également un coup d'oeil aux déclarations préparées si vous manipulez les entrées de l'utilisateur. Pour réduire le risque d' injections SQL

un exemple de chaîne de connexion mysqli:

<?php
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
?>

un exemple de chaîne de connexion AOP:

<?php
    $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?> 

Remarque:

que l'exemple mysqli gère une connexion erreur

9
répondu BRoebie 2017-05-23 10:31:30

vérifiez si le Wordpress utilise toujours L'extension Mysql qui a été retirée dans PHP7.

http://php.net/manual/en/migration70.removed-exts-sapis.php

les extensions Mysqli et PDO ont été conservées. C'est la raison pour vos autres sites web fonctionnent.

4
répondu Bruno Leite 2015-12-15 13:07:37

ce problème est causé par php 7.1.0-dev.

j'en ai construit un autre avec la même version de configuration 7.0.0 et le problème a été résolu.

cela n'a rien à voir avec WordPress car il va automatiquement essayer D'utiliser MySQLi quand MySQL n'est pas trouvé. Au moins dans le WP 4.4.

2
répondu user550385 2015-12-15 23:51:38

sur Ubuntu, j'ai corrigé cette erreur en lançant

sudo apt-get install php-mysql

et puis redémarrer mon serveur (caddy, mais vous pourriez utiliser apache ou nginx).

source

-2
répondu Keith 2017-07-05 20:34:44