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

Langage PHP Discussion :

FreeTDS + M$SQL + Page PHP [PHP 5.4]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2015
    Messages : 7
    Points : 5
    Points
    5
    Par défaut FreeTDS + M$SQL + Page PHP
    Bonjour à tous

    Je viens vers vous pour un problème de développement sur lequel je m'arrache les cheveux depuis quelques jours.

    Je dois, pour ma boite, extraire certaines informations d'une base de données sous MSSQL 2008 R2, vers une page WEB. J'utilise PHP pour générer la page WEB.

    Mon serveur Web tourne sous Linux Debian 7.


    J'ai cru comprendre que pour que mon serveur web puisse se connecté sur la base de données MSSQL il faut utiliser un connecteur ODBC. J'utilise dans le cas présent FreeTDS

    Voici la configuration que j'ai mis en place :

    Driver TDS :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [TDS]
    Description     = FreeTDS Driver for Linux & MSSQL on Win32
    Driver          = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
    Setup           = /usr/lib/i386-linux-gnu/odbc/odbclibtdsS.so

    DSN :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [DSN_JADE]
    Description     = Production Server
    Driver          = TDS
    Trace           = No
    Server          = serveur-jade.mfa.local\sqljade
    TDS_Version     = 8.0
    Port            = 1433
    J'ai correctement enregistrer mon driver et mon DSN avec les commandes :
    # odbcinst -i -s -l -f /etc/freetds/tds.dsn.template
    # odbcinst -i -d -f /etc/freetds/tds.driver.template


    Puis un test avec isql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    root@GW-SMS:~# isql -v DSN_JADE ******* ******** 
    +---------------------------------------+
    | Connected!                            |
    |                                       |
    | sql-statement                         |
    | help [tablename]                      |
    | quit                                  |
    |                                       |
    +---------------------------------------+
    SQL>
    Une requête SQL directement depuis le serveur en ligne de commande aboutie bien et me présente les bons resultats.

    Par contre tout se corse lorsque je souhaite causer avec la BDD via PHP.

    Voici mon code :

    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
      <?php
     
     try {
     
      new PDO ('odbc:Driver=TDS;Server=192.168.0.238\sqljade;Database=DbJade;UID=********;PWD=*********;');
     
      $result = $con->query('SELECT [OPEPRENOM] FROM [BdJade].[dbo].[MAGASIN]');
      foreach ($result as $row) {
       print $row['OPEPRENOM'] . '<br />';
      }
     
     
     } catch (PDOException $e) {
      echo $e->getMessage();
     }
     
     
    // phpinfo();
     
     ?>

    Le résultat :

    SQLSTATE[08001] SQLDriverConnect: 0 [unixODBC][FreeTDS][SQL Server]Unable to connect to data source

    Je n'arrive pas a localiser mon erreur et pouvoir enfin afficher le résultat de ma requête sur la page WEB


    Merci à tous !!!

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new PDO ('odbc:Driver=TDS;Server=192.168.0.238\\sqljade;Database=DbJade;UID=********;PWD=*********;');
    Sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new PDO ('odbc:Driver=TDS;Server=DSN_JADE;Database=DbJade;UID=********;PWD=*********;');

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2015
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new PDO ('odbc:Driver=TDS;Server=192.168.0.238\\sqljade;Database=DbJade;UID=********;PWD=*********;');
    Sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new PDO ('odbc:Driver=TDS;Server=DSN_JADE;Database=DbJade;UID=********;PWD=*********;');

    Bonsoir

    Avec tes deux propositions cela ne fonctionne pas. Petite différence avec ta première proposition j'ai un certain temps d'attente avant d'avoir le message d'erreur (comme un timeout) et la deuxième proposition j'ai immédiatement le message d'erreur. D'autres pistes ?

    Merci

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2015
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    ENFINNNNNNNN

    J'ai réussi à résoudre mon problème ! Plus de message d'erreur au niveau de la connexion ODBC

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      new PDO ('odbc:Driver=TDS;Server=serveur-jade.mfa.local\sqljade;Database=BdJade;UID=*******;PWD=********;TDS_Version=8.0;Port=1433');
    En rajoutant les mêmes informations contenues dans /etc/odbc.ini dans ma ligne de connexion cela fonctionne !

    Merci à tous

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

Discussions similaires

  1. [SQL] PB Partage d'une variable de type tableau d'une page PHP à une autre
    Par fredav dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 02/11/2007, 14h21
  2. [SQL] Requêtes fonctionnant sous Phpmyadmin et non pas sur ma page PHP
    Par yul94 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/09/2007, 19h52
  3. Réponses: 8
    Dernier message: 04/07/2007, 12h51
  4. [SQL] enregistrer le résultat dune page php en html sur le server
    Par lagag dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 06/10/2006, 14h04
  5. [SQL] appel une page php
    Par sandytarit dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/05/2006, 15h44

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