Jack Zhang propose sur DevArticles un article assez long expliquant comment jouer des procédures stockées SQL Server depuis un serveur Linux à l'aide de PHP.

A vrai dire, le début n'est pas vraiment captivant. Jack commence par expliquer comment installer Linux, puis comment déployer Apache (en partant des sources d'Apache 2, choix contestable qui plus est).

Fort heureusement, la suite de l'article n'est pas dénué d'intérêt. Jack y détail l'installation de l'extension FreeTDS ainsi que sa configuration (paramètres de connexion au serveur faisant tourner SQL Server, etc.). Puis il passe à la compilation de PHP 4.3.3.

Pour avoir tenté (sans trop chercher non plus) d'attaquer une "proc stoc" SQL Server depuis une machine sous Linux utilisant FreeTDS et PHP, j'étais assez curieux de lire la suite. Et je n'ai pas été décu.

En réalité, Jack propose ni plus ni moins qu'un "hack" (en tout bien, tout honneur) des sources de PHP4.3.3. L'objectif est de faire fonctionner les fonctions mssql_bind(), mssql_execute(), et mssql_init() qui seront nécessaire pour la suite et qui, si elles fonctionnent depuis PHP sous Windows, ne fonctionnent pas depuis PHP + FreeTDS sous Linux. Jack explique donc pas à pas l'ensemble des modifications à apporter au répertoire ext/mssql et détail la compilation des sources de PHP une fois les modifications faites.

Pour finir, il termine par un exemple d'appel à une "proc stoc" depuis PHP sous Linux à l'aide de FreeTDS. Et ca semble marcher ! C'est filou, mais ca passe.

Executing Microsoft SQL Server Stored Procedure from PHP on Linux
FreeTDS 0.61.2