PHP 5.3.x et MSSQL…

En programmant... 20 avril 2011

C’est un cas extrêmement rare voire inexistant (ou pas) mais il peut arriver que l’on ait besoin d’accéder à une base de données SQL Server depuis une application PHP 5.3.x.
Ou pire : depuis une application PHP sous Windows (ce qui explique peut-être le premier cas de figure) !

Les personnes informées sauront que les fonctions mssql_* sont dépréciées depuis PHP 5.3 et qu’elles sont remplacées par leurs petites sœurs maintenues par Microsoft les sqlsrv_*

Pour une application neuve, rien de bien grave mais le monde du développement réserve souvent son lot de surprises qui, par exemple, peuvent obliger un upgrade de PHP sans toucher au code (si possible)…

Il existe, heureusement, un moyen un peu tordu d’activer les fonctions mssql_* sur les dernières versions de PHP

Il suffit de télécharger l’archive de PHP 5.3.1 (attention à bien choisir le package en fonction de votre version : VC6 ou VC9).
On copie ensuite /ntwdblid.dll, /ext/php_mssql.dll et /ext/php_pdo_mssql.dll de la version 5.3.1 vers la version installé sur la machine.
On décommente extension=php_mssql.dll et extension=php_pdo_mssql.dll dans le php.ini local et on redémarre le serveur web (pas la machine hein !).

N’allez pas demander pourquoi ces extensions sont présentes dans PHP 5.3.1 alors qu’elles sont dépréciées depuis PHP 5.3…

L’essentiel, c’est que ça fonctionne !

2 commentaires

  1. yjeanpie dit :

    bonjour
    dans ’archive de PHP 5.3.1′ VC9 il n’y a pas de mssql.dll ou pdo_mssql.dll
    je ne l’ai trouvé qu’en vc6, est-ce normal ?

    1. Aurélien dit :

      Effectivement, il semblerait que ça ne soit présent que pour les VC6… :/

Laisser un commentaire

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