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 :

Gestion des requetes semblent différentes entre PHP 5.6 et PHP 7.4.9 [ODBC]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 98
    Par défaut Gestion des requetes semblent différentes entre PHP 5.6 et PHP 7.4.9
    Bonjour je viens de migrer un site web qui fonctionne parfaitement en PhP 5.6 vers un serveur en PhP 7.4.9 (avec une liaison odbc d'une base access) et je me retrouve avec des problèmes de fonctionnement de certaines requetes.
    Par exemple la requete SELECT SUM(Montant) AS Total FROM Besoins fonctionnait auparavant et le même code sur le nouveau serveur renvoie une erreur.
    Je précise que d'autres requetes sans la fonction SUM marchent très bien.
    J'ai regardé le php.ini mais je ne sais pas quel paramètre éventuellement modifier ou si le paramètre à changer est ailleurs.

    Avez vous déjà rencontrée ce genre d'erreur?

    Merci à tous

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    PHP 7.4 est en fin de vie depuis bientôt 1 an, si tu migres passe sur PHP 8.2 => https://www.php.net/supported-versions.php


    Par exemple la requete SELECT SUM(Montant) AS Total FROM Besoins fonctionnait auparavant et le même code sur le nouveau serveur renvoie une erreur.
    Quelle erreur ? Quelle base de données ?
    Cette dernière n'a pas changé avec la migration ?

  3. #3
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 98
    Par défaut
    Il s'agit d'une requete PhP qui récupère des données d'une base access par l'intermédiaire du pilote ODBC installé.
    Sur la page incriminée dispose de plusieurs requetes dont certaines fonctionnent normalement mais celles qui posent problèmes sont celles qui utilisent la fonction SUM (coir ci dessous).
    C'est bizarre car elles fonctionnent très bien sur l'ancien serveur en PHP 5.6

    Je penche plutôt pour une configuration soit du serveur IIS soit d'une configuration du php.ini ???
    mais je ne vois pas de différence pour l'instant.
    Je me pose donc la question de savoir si cette fonction est bien interprétée en PHP 7 ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sql_HistoCAJanv="SELECT SUM(Montant_demande) AS TOTALJanv FROM Besoins_Clients";
    $rs_HistoCAJanv=odbc_exec($conn,$sql_HistoCAJanv);
    if (!$rs_HistoCAJanv)
      {exit("Erreur dans le code SQL janvier".$ref_organisme);
      }
    $TotalJanv=odbc_result($rs_HistoCAJanv,"TOTALJanv");

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    Je penche plutôt pour une configuration soit du serveur IIS
    J'en suis resté à "IIS est un serveur web", ainsi je ne vois pas trop ce qu'il a affaire avec ODBC. Mais ça date.

    soit d'une configuration du php.ini ???
    Cela m'étonnerait que le SUM() de ODBC soit paramétrable dans php.ini.
    Les autres fonctions d'agrégation comme COUNT(), MIN() et MAX() fonctionnent ?

    Je me pose donc la question de savoir si cette fonction est bien interprétée en PHP 7 ?
    PHP lui-même n'interprète pas le SQL, c'est la BDD interrogée, et à la limite le driver ODBC, qui s'en occupe.

    Au cas où il y aurait un problème de driver, tu peux essayer de passer par un autre driver comme PDO/ODBC => https://www.php.net/manual/fr/ref.pdo-odbc.php

    Et sinon, on ne sait toujours pas quelle est l'erreur obtenue

  5. #5
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 98
    Par défaut
    L'erreur affichée correspond à celle du code php soit "Erreur dans le code SQL janvier"

    Merci pour tes infos forts utiles pour m'avancer, je vais jeter un oeil sur les extensions PhP et les versions du driver.

  6. #6
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    Utilise plutôt odbc_errormsg() pour connaître l'erreur réelle.

    https://www.php.net/manual/fr/functi...c-errormsg.php

  7. #7
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 98
    Par défaut
    Après comparaison de la configuration d'ODBC, des drivers et du code, j'ai retrouvé quelques erreurs dans ce dernier. Il semble que cela ne passe pas avec la nouvelle version de PhP. Après rectification de quelques lignes cela fonctionne à nouveau.
    Je mets la discussion en résolu.
    Merci à Seb pour son aide précieuse.

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

Discussions similaires

  1. [MySQL] requete SQL différente entre MySQL et php
    Par stefano dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 19/07/2012, 22h31
  2. [MySQL] Format de date différent entre PHP et ASP
    Par lekev62 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/06/2009, 12h36
  3. Gestion des requetes
    Par r1cain dans le forum WebDev
    Réponses: 1
    Dernier message: 18/06/2008, 23h43
  4. Gestion des requetes de type select en mode déconnecté
    Par ninsekh dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/10/2007, 20h56
  5. Réponses: 3
    Dernier message: 19/01/2006, 08h37

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