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!
Requerimientos
Requerimientos para plataformas Win32.
La extensión requiere que las herramientas cliente de MS SQL para ser instalada en el sistema donde está instalado PHP. Las herramientas de cliente se pueden instalar desde el CD de MS SQL Server o mediante la copia de ntwdblib.dll desde \winnt\system32 en el servidor hacia \winnt\system32 en la maquina de PHP. Copiando ntwdblib.dll sólo permitirá el acceso a través de canalizaciones con nombre. La configuración del cliente requerirá la instalación de todas las herramientas.
Esta extensión ya no está disponible en Windows con PHP 5.3 o posterior.
SqlSrv, es un driver alternativo para MS SQL disponible desde Microsoft: » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx.
Requerimientos para plataformas Unix/Linux.
Para utilizar la extensión MSSQL en Unix/Linux, primero es necesario construir e instalar la biblioteca FreeTDS. El código fuente y las instrucciones de instalación están disponibles en la página web de FreeTDS: » http://www.freetds.org/
Nota:
En Windows se usa el DBLIB de Microsoft. Las funciones que devuelven un nombre de columna se basan en la función dbcolname() en DBLIB. DBLIB fue desarrollado para SQL Server 6.x, donde la longitud máxima del identificador es 30. Por esta razón, la longitud máxima de columna es de 30 caracteres. En plataformas donde se utiliza FreeTDS (Linux), esto no es un problema.
Nota:
En Windows, si se está usando MSSQL 2005 o superior, se debe copiar el ntwdblib.dll en el directorio donde se ha instalado php y sobrescribir el que ya existe. Esto se debe a que la versión distribuida es vieja y obsoleta. Alternativamente, se pueden utilizar las extensiones » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx, ODBC, PDO_DBLIB o PDO_ODBC, para comunicarse con 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.
