PHP+ODBC pour accéder à un serveur MS SQL

Posted by

J’ai dû récemment mettre en place de quoi attaquer un server Microsoft MS SQL Server 2000 depuis une plateforme Linux/Apache/PHP. Sous Debian Etch il existe le module php5-sybase censé géré Sybase et MSSql. Le problème c’est que php est compilé sans le support de sqlserver. Du coup il restait soit ODBC soit recompiler PHP m’obligeant à recompiler PHP à chaque mise à jour d sécurité… J’ai donc choisi ODBC. Dans un premier temps on installe le module PHP :

# apt-get install php5-odbc

Par un appel à phpinfo(); on vérifie que odbc est bien géré.
Ensuite on installe freetds qui est la couche sur laquelle ODBC s’appuie pour gérer MSSQL :

# apt-get install freetds-dev

Puis dans le fichier /etc/freetds/freetds.conf on définit le serveur SQL Server :

[ServerBDDMS]
        host = 192.168.1.14
        port = 1433
        tds version = 7.0

# On installe odbc version Unix :
# apt-get install tdsodbc unixodbc Dans le fichier/etc/odbcinst.ini on définit un pilote pour notre connexion :

[FreeTDS]
Description = Connexion MsSQL
Driver = /usr/lib/odbc/libtdsodbc.so
Setup = /usr/lib/odbc/libtdsS.so
FileUsage = 1
CPTimeout = 5
CPReuse = 5

Enfin le fichier /etc/odbc.ini contient un nom de connexion et le nom de la base. Et surtout on y indique les pilote odbc et nom de serveur définits plus haut.

[ClientX]
Description = Produits du client
Driver = FreeTDS
Servername = ServeurBDDMS
Database = produits_client

Si tout est ok la commande : isql -v client X doit fonctionner par conséquent le code PHP correspondant également. Il est possible de tester avec ce code-ci :


Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.