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 !!!