Migration de PHP 5.6 vers une version 7

Bonjour,
Comme j'avais un avertissement dans le tableau de bord au sujet de l'utilisation de la version PHP 5.6 (obsolete), j'ai tenté de migrer mon site vers une version 7 et de passer l'environnement de "legacy" en "stable" (pour pouvoir aller au-delà de la version 7.0).

Résultat: la partie Wordpress du site continue à fonctionner.
Par contre, plus aucun de mes programmes php ne tourne (erreur 500), comme si leur syntaxe était incorrecte.
Je précise que ces programmes font appel à une base de donnée SQL.

Y aurait-il un truc ou une balise particulière à mettre dans les programmes PHP pour leur permettre de tourner en 7.0 ou 7.1 ou 7.2 ?

Merci d'avance de votre aide si vous êtes déjà passés par cette migration.


erreur 500


Vois dans ton espace client , hébergement web, les logs d'erreur sont accessibles quelque part.

Je précise que ces programmes font appel à une base de donnée SQL.

Bonjour @Roger_webmaster_F

Si tu utilises les commandes MYSQL telles que **mysql_connect**, alors OUI elles ne sont plus autorisées dans PHP7.

Extrait de https://www.php.net/manual/fr/function.mysql-connect.php



Lire : **https://wordetweb.com/word-et-web/OVH-Tester-une-base-de-donnees-via-un-script-PDO-FR.htm">OVH - Test de Base de Données via un script en langage PDO**

Merci pour le conseil, mais je n'ai rien vu dans le log, à part le message récurrent habituel "(22)Invalid argument: Cannot fix environment variables for container, continue anyway." relatif à l'adresse client 127.0.0.1 et une erreur "client denied" apparue quand j'ai modifié le .htaccess pour voir si le problème venait de là (conseil trouvé sur le forum en relation avec cette migration).

Merci Gaston_Phone, c'est certainement de là que vient le problème.
Je vais adapter un de mes PHP et refaire le test.
L'idéal pour de tels tests serait de pouvoir migrer uniquement un répertoire, mais je pense que ce n'est pas possible. Correct?
Mais comme les fonctions mysqli supportées en v7 fonctionnent aussi en V5.6, je vais commencer par tout convertir sans quitter PHP 5.6, pour basculer sur PHP 7.x quand tout sera prêt et testé et voir s'il y a d'autres soucis que ce mysql à changer à mysqli.
J'ai fait le test sur un de mes php en changeant tous les appels mysql en leur équivalent mysqli : le programme converti tourne sans problème sous PHP 5.6, par contre, les ordres SELECT ne retournaient rien en PHP 7.0; j'ai finalement remarqué que le paramètre MYSQL_ASSOC était aussi à modifier. En testant en PHP 5.6, on ne remarque pas l'oubli parce que MYSQL_ASSOC renvoie la même chose. Je le signale pour ceux qui suivraient le même chemin que moi. :wink:

Merci @Roger_webmaster_F pour ta réponse très détaillée.

Je me demande si un jour, mysqli ne sera plus autorisé.
Tu devrais essayer de prévoir la migration au PDO.

Bonjour,


Je me demande si un jour, mysqli ne sera plus autorisé.

à ma connaissance c'est pas prévu car MySQLi existe depuis PHP5, est toujours en cours développement et surtout permet d'être utilisé aussi bien en procédurale que POO.

Cf : https://www.php.net/manual/fr/mysqli.overview.php
Exemple : https://www.php.net/manual/fr/mysqli.construct.php

Cordialement, janus57


Cf : https://www.php.net/manual/fr/mysqli.overview.php

Merci @janus57 pour ce lien.