IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Migration de PHP 5.6 à 7.2


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Avril 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2019
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Migration de PHP 5.6 à 7.2
    Bonjour à tous,

    Je vous écris car je suis une ancienne webmastrice amatrice de sites développés en PHP. Les sites sont arrêtés depuis 10 ans et je n'ai plus vraiment touché à PHP depuis mais par nostalgie, j'ai gardé une version en ligne que j'héberge maintenant sur 1&1.

    J'ai reçu un mail dernièrement m'annonçant que ma version 5.6 de PHP était dépassée et qu'il fallait migrer sur la version 7.2 minimum (pour éviter un supplément de 7€ par mois pour garder la version 5.6). J'ai changé la version pour voir la tête des dégâts et les erreurs apparaissent dès mes premières lignes de code. En cherchant un peu, je me rends compte que c'est tout mon code qu'il semble falloir changer car les requêtes les plus simples ne sont plus reconnus, voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $reqcp = mysql_query("SELECT * FROM countpage WHERE page='$pageactuel'");
    $cp = mysql_fetch_array($reqcp);
    $cpok = mysql_num_rows($reqcp);
    Ma question est : comment faire pour avoir mon site à jour et qui marche sur php 7.2 ?

    Faut-il que je change tout mon code sur toutes mes pages ? Ou y a t'il une manière "automatisé" pour le faire ?

    Je vous remercie par avance de votre aide,

    Stef

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    manière automatisée ? je ne pense pas que cela existe, l'évolution du langage PHP est telle que cela va te forcer à une grosse mise à jour.
    Les fonctions mysql_xxx sont a remplacer par mysqli_xxx ou mieux par PDO.
    Après, il va te falloir parcourir ton site les plus exhaustivement possible et purger tous les warnings et autres erreurs, bref y a du pain sur la planche

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    En plus ou moins centralisé pour le passage de l'API mysql à mysqli, tu as ce bout de code développé par un membre de developpez : passer de mysql à mysqli, qui si je me souviens bien n'est pas tout à fait complet, mais donne une bonne base de travail.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par rawsrc Voir le message
    ...bref y a du pain sur la planche
    En réalité, pas tant que ça.
    J'ai récemment passé un site de mysql à mysqli procédural en moins d'une demi heure !
    (alors que je m'en faisais tout un fromage...)

    C'est en fait relativement simple, surtout si on dispose d'un logiciel comme Notepad++,
    qui permet d'ouvrir un grand nombre de pages en même temps, et de faire un traitement (recherche/remplacement) global.

    1- Déjà, il faut changer la connexion :
    Fichier connexion.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?php
    // -----------------------------------------------------
    // Paramètres de connection à la Base de Données sur le serveur
    // -----------------------------------------------------
    if( !function_exists('my_sqli_connexxion') )
    {
    	function my_sqli_connexxion()
    	{
    		$sqli					= '';
    		$sqli_conn				= array();
    		// ------------------------
    		$sqli_conn['hostname']	= '...'; // voir hébergeur ou "localhost" en local
    		$sqli_conn['database']	= '...'; // nom de la BdD
    		$sqli_conn['username']	= '...'; // identifiant "root" en local
    		$sqli_conn['password']	= '...'; // mot de passe (vide en local)
    		// ------------------------
    		// connexion à la Base de Données
    		$sqli = mysqli_connect($sqli_conn['hostname'], $sqli_conn['username'], $sqli_conn['password'], $sqli_conn['database']);
    		mysqli_set_charset($sqli, 'utf8'); // PHP5 et +
    		// ------------------------
    		return $sqli;
    	}
    }
    // -------------------------------------------------------
    $sqli	= my_sqli_connexxion();
    // -------------------------------------------------------
    L'identifiant de lien de connexion s'appelle ici : $sqli.

    2- On ouvre tous les fichiers (à modifier) avec Notepad++.

    Il faut alors Rechercher/remplacer, en distinguant 3 groupes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    // 1-$sqli, (avec virgule)
    mysql_real_escape_string(	->	mysqli_real_escape_string($sqli,
    mysql_query(	->	mysqli_query($sqli,
    ...
     
    // 2-$sqli (sans virgule)
    mysql_insert_id()	->	mysqli_insert_id($sqli)
    mysql_errno()	->	mysqli_errno($sqli)
    mysql_error()	->	mysqli_error($sqli)
    mysql_close()	->	mysqli_close($sqli)
    mysql_affected_rows()	->	mysqli_affected_rows($sqli)
    ...
     
    // 3-(rien)
    mysql_fetch_array(	->	mysqli_fetch_array(
    mysql_fetch_assoc(	->	mysqli_fetch_assoc(
    mysql_fetch_row(	->	mysqli_fetch_row(
    mysql_fetch_seek(	->	mysqli_fetch_seek(
    ...

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Avril 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2019
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    tout d'abord, merci à tous pour vos réponses !

    De ce que je lis, j'ai l'impression de comprendre qu'il faut faire une modification sur toutes les pages. J'ai commencé le travail et pour l'instant, mes changements fonctionnent ! Je vais continuer tel quel mais j'avoue trouver dingue qu'un changement de version ait un impact de tel ampleur. Même si je ne m'intéresse plus à la programmation, j'avoue que j'étais curieuse de savoir comment les développeurs et webmasters s'en étaient sortis ? Quand j'ai commencé à lâcher la programmation, beaucoup de tourner vers Wordpress et cie qui ont dû s'occuper du changement ?

    Merci en tout cas de votre aide et bonne soirée !

    Stéphanie

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Ce n'est pas "juste" un changement de version PHP.

    L'extension mysql_ est :
    • obsolète depuis PHP 5.5.0 (Released: 20 Jun 2013)
    • et a été supprimée depuis PHP 7.0.0 (Released: 03 Dec 2015)
    • (PHP releases).

    Autrement dit : le changement de mysql_ en mysqli_ (ou mieux : PDO) aurait déjà dû être fait il y a au moins 7-8 ans !

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Avril 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2019
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Je ne dis pas qu'il s'agit "juste" d'un changement de version, je voulais dire que le changement aurait pu évoluer sans changer devoir changer les requêtes de base. Après, il doit y avoir une raison qui m'échappe, comme je le disais, j'ai arrêté de programmer en 2008 quand j'ai commencé à sortir de mes écrans pour voyager.

    Sur ce, merci encore pour vos réponses, bonne soirée !

    Stef

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Migration de PHP 4 à PHP 5 sur RedHat 4
    Par Flipmode dans le forum RedHat / CentOS / Fedora
    Réponses: 1
    Dernier message: 26/01/2009, 11h02
  2. Migration de PHP 4 à PHP 5.X
    Par Caillou63 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 28/11/2008, 15h15
  3. Réponses: 5
    Dernier message: 28/03/2008, 01h01
  4. Réponses: 2
    Dernier message: 03/12/2007, 18h56
  5. [Wamp] Migration vers PHP 5
    Par Fonzy17 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 18/07/2006, 16h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo