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
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.
PHP 7 a supprimé mysql_ * complètement.
vous devez utiliser PDO ou mysqli. Wordpress semble ne pas supporter cela.
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
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.
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.