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 :
J'ai correctement enregistrer mon driver et mon DSN avec les commandes :
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
# odbcinst -i -s -l -f /etc/freetds/tds.dsn.template
# odbcinst -i -d -f /etc/freetds/tds.driver.template
Puis un test avec isql
Une requête SQL directement depuis le serveur en ligne de commande aboutie bien et me présente les bons resultats.
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>
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 !!!
Partager