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 :

Classe pour connexion ODBC et DB2/Iseries [ODBC]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Classe pour connexion ODBC et DB2/Iseries
    Bonjour,


    Désolé j'ai bien lu deux trois discussions sur le forum pour des prob. identiques mais je suis pas férru en PHP donc j'ai pas trouvé ma solution :
    Au départ j'avais dév ca pour une base de donnée MS_SQL et ca tournait bien. Aujourd'ui en utilisant la même classe mais en m'appuyant sur les pilotes ODBC ca ne tourne plus et je ne trouve pas :
    Donc j'ai une classe qui fait ma connesion sur mon serveur DB2 via mon pilote ODBC :

    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
     
    <?php
        class Database {
              var $serveur;
              var $user;
              var $password;
              var $db;
     
              function Database ($host='SERVEUR',$util='USER',$mdpasse='PWD') {
     
              $this->serveur=$host;
              $this->user=$util;
              $this->password=$mdpasse;
              $this->db=odbc_pconnect($this->serveur,$this->user,$this->password);
              }
              function __destruct() {
              }
    }
    ?>
    Ensuite j'ai une page qui fait appel à cette classe avec le code suivant :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    include 'connect.class.php';
        $mabase=new Database();
     
        $result="select IHINVN, IHORNO from SROISH where IHINVN='7107000001'";
        $result= odbc_do($mabase, $result);

    Si dans ma classe je change le nom d'utilisateur passé pour la connexion ODBC, j'ai bien ne fenètre du client ODBC qui s'ouvre en me disant que l'utilisateur n'existe pas et me propose d'en saisir un autre. Si je change le mot de passe j'ai une erreur comme quoi le mote de passe est invalide. Donc ma classe semble fonctionner. (pas de soucis de conf du php.ini / include_path())

    par contre lors de l'exécution de ma page principale, j'ai une erreur de type :
    odbc_do() expects parameter 1 to be resource
    Si je fais un écho de la variable $mabase il me dit qu'il ne peut pas la convertir en string.
    Par ailleur j'ai testé de passer directement dans ma page principale la commande odbc_connect('SERVEUR','USER','PWD') et la pas de soucis ca fonctionne. (l'echo me renvoi alors in connection_id)
    Je pense que je dois me prendre les pieds dans le tapis entre la fonction et la méthode mais ou ?
    Je suis plutôt débutant en php, mais cela fonctionnait très bien avec la fonction mssql_connect() pour me connecter sur du MS_SQL 2000.

    merci de vos lumières

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    il va plutôt falloir faire un methode connect, la $mabase retourne l'objet

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci d'avoir répondu rapidement. Mais concrètement, vu que j'ai une maitrise limitée de PHP je ne vois pas ce qu'il faut que je modifie / ajoute et a quel endroit. dans la classe , dans l'appel de la classe ?

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par fmonnot Voir le message
    Merci d'avoir répondu rapidement. Mais concrètement, vu que j'ai une maitrise limitée de PHP je ne vois pas ce qu'il faut que je modifie / ajoute et a quel endroit. dans la classe , dans l'appel de la classe ?

    il faut creer une methode connect

    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
     class Database {
              var $serveur;
              var $user;
              var $password;
              var $db;
     
              function connect ($host='SERVEUR',$util='USER',$mdpasse='PWD') {
     
              $this->serveur=$host;
              $this->user=$util;
              $this->password=$mdpasse;
              $this->db=odbc_pconnect($this->serveur,$this->user,$this->password);
               return $this->db;
              }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $mabase=new Database();
     $conn = $mabase->connect();
        $result="select IHINVN, IHORNO from SROISH where IHINVN='7107000001'";
        $result= odbc_do($conn, $result);

    par contre la ton code c'est du PHP 4, sinon c'est quoi l'intérêt de faire ca ?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Super, ca marche. Pour ce qui est de l'intérêt, mon objectif est de n'avoir à changer les paramètres d'utilisateur/mot de passe que dans un seul fichier et l'ensemble de mes pages appelant la fonction tourne. Après il y a surement plus élégant, comme je l'ai dis je ne suis pas pro du php ni du dév. Il y a peut être plus puissant / efficace que de passer par les pilotes odbc mais je n’ai pas trouvé les extensions db2 gratuites (merci ibm a tout faire payer ).
    Si il y a plus heureux je suis preneur d'idées.

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par fmonnot Voir le message
    Super, ca marche. Pour ce qui est de l'intérêt, mon objectif est de n'avoir à changer les paramètres d'utilisateur/mot de passe que dans un seul fichier et l'ensemble de mes pages appelant la fonction tourne. Après il y a surement plus élégant, comme je l'ai dis je ne suis pas pro du php ni du dév. Il y a peut être plus puissant / efficace que de passer par les pilotes odbc mais je n’ai pas trouvé les extensions db2 gratuites (merci ibm a tout faire payer ).
    Si il y a plus heureux je suis preneur d'idées.
    pourquoi ne pas juste faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    odbc_pconnect(SERVEUR, USER, PWD);
    et le pconnect c'est voulu, t'as vraiment besoin d'une connexion persistante ?

    Sinon au niveau des autre lib y'a PDO_IBM mais il est pas par default partout
    http://www.php.net/manual/fr/ref.pdo-ibm.php

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

Discussions similaires

  1. [MySQL] Classe Pour Connexion
    Par steve348 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 08/12/2014, 17h53
  2. Réponses: 3
    Dernier message: 24/09/2007, 10h35
  3. Outil pour connexion odbc sous python
    Par toctoc14 dans le forum Bibliothèques tierces
    Réponses: 2
    Dernier message: 11/05/2007, 16h13
  4. Réponses: 1
    Dernier message: 24/10/2006, 00h24
  5. source ODBC pour connexion MS SQL Server
    Par grinder59 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 24/05/2006, 09h17

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