I have struggled a lot to make PHP connect to a MS SQL server from under a Linux (using FreeTDS).
I installed the latest FreeTDS and tried to use usual host:port to connect to a server.
Finally when I configured freetds.conf like that:
[mysrvalias]
host = 192.168.17.17
port = 1433
tds version = 7.0
and used mysrvalias instead of the 192.168.17.17:1433, it worked!
Pré-requis
Requis pour les plates-formes Windows
Vous avez besoin d'un client MS SQL Client Tools sur votre système, accessible à PHP. Les Client Tools peuvent être installés depuis le CD MS SQL Server CD ou en copiant ntwdblib.dll depuis le dossier \winnt\system32 du serveur MS SQL vers \winnt\system32 sur le serveur PHP. Copier ntwdblib.dll ne fera que fournir le moyen d'accès. La configuration du client requiert l'installation des autres outils.
Cette extension n'est plus disponible sous Windows avec PHP 5.3 et suivant.
SQLSRV, un pilote de remplacement pour MS SQL est disponible chez Microsoft : » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx.
Prérequis pour les plates-formes Unix/Linux.
Pour utiliser l'extension MS SQL sur Unix/Linux, vous devez commencer par compiler et installer la bibliothèque FreeTDS. Le code source et les instructions d'installation sont disponibles sur le site de FreeTDS : » http://www.freetds.org/
Note:
Sur Windows, la bibliothèque DBLIB de Microsoft est utilisée. Les fonctions qui retournent les noms de colonnes sont basées sur la fonction dbcolname() de DBLIB. DBLIB a été développée pour MS SQL Server 6.x où la longueur maximale de l'identifiant est 30. Pour cette raison, la longueur maximale des colonnes est 30. Sur les plates-formes où FreeTDS est utilisé (Linux), il n'y pas ce problème.
Note:
Sur Windows, si vous utilisez MSSQL 2005 ou plus récent, vous devez copier la bibliothèque ntwdblib.dll dans le dossier où vous avez installé PHP, et écraser celle qui s'y trouve. Ceci est dû à la version qui est distribuée avec PHP : elle est ancienne et obsolète. Autrement, vous pouvez utiliser » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx, ODBC, PDO_DBLIB or PDO_ODBC pour communiquer avec MSSQL.
On a relatively new install of Windows Server 2008, the dll MSVCR71.DLL was missing. I was able to download it (search for "MSVCR71.DLL download") and put it in the system32 folder to get it to work.
