J'ai construit PHP 7 avec une configuration qui fonctionnait pour une version précédente de PHP. Maintenant, mes sites Web WordPress reçoivent le message:
Votre installation PHP semble ne pas avoir l'extension MySQL requise par WordPress.
D'autres sites Web utilisant mysqli fonctionnent. Qu'est-ce que je rate?
J'ai également inclus tous les fichiers .so 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
Comme cela a été mentionné ailleurs, le ext/mysql
les fonctions ont été supprimées. Nous avons été en parler depuis 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 conservant la compatibilité avec cette ancienne version, ce qui rend le code un peu plus difficile à maintenir.
Si vous êtes déterminé à les remettre, vous pouvez les ajouter à PHP 7 en utilisant ext/mysql PECL Library
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, le faisant basculer vers l'utilisation de la bibliothèque mysqli PHP, lors de l'utilisation de PHP 5,5 ou supérieur.
PHP 7 a complètement supprimé mysql_ *.
Vous devez utiliser PDO ou mysqli. Wordpress ne semble pas supporter cela.
mysql_*
les fonctions ont été supprimées dans PHP 7.0 mettez à jour votre code en mysqli ou PDO
Jetez également un œil aux instructions préparées si vous gérez les entrées utilisateur. Pour réduire le risque de 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 pdo:
<?php
$dbh = new PDO('mysql:Host=localhost;dbname=test', $user, $pass);
?>
Remarque:
Cet exemple mysqli gère une erreur de connexion
Vérifiez si le Wordpress utilise toujours l'extension Mysql qui a été supprimée en 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 laquelle vos autres sites Web fonctionnent.
Ce problème est dû à 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 essaiera automatiquement d'utiliser MySQLi lorsque MySQL n'est pas trouvé. Au moins dans WP 4.4.