Como obtenho a extensão SQLSRV para trabalhar com PHP, já que o MSSQL está obsoleto?

Eu atualizei para o PHP 5.3, e notei que php_mssql.dll está faltando. Depois de googling um pouco, parece que 5.3 caiu suporte para mssql. Então eu baixei os drivers da microsoft, mas parece que não consigo fazer funcionar.

Eu estou no windows. O que eu preciso fazer depois de descompactar os arquivos no diretório ext do meu PHP 5.3?

Citando http://php.net/manual/en/intro.mssql.php :

A extensão MSSQL não está mais disponível no Windows com PHP 5.3 ou posterior. O SQLSRV, um driver alternativo para o MS SQL, está disponível na Microsoft: » http://msdn.microsoft.com/pt-br/sqlserver/ff657782.aspx .

Depois de fazer o download, siga as instruções nesta página:

  • Carregando os drivers da Microsoft para PHP para o SQL Server

Em poucas palavras:

Coloque o arquivo do driver em seu diretório de extensão do PHP.
Modifique o arquivo php.ini para include o driver. Por exemplo:

extension=php_sqlsrv_53_nts_vc9.dll 

Reinicie o servidor da Web.

Consulte também (copiado dessa página)

  • Requisitos do sistema (drivers da Microsoft para PHP para SQL Server)
  • Começando
  • Guia de Programação
  • Referência da API do driver SQLSRV (drivers da Microsoft para PHP para SQL Server)

O Manual do PHP para a extensão SQLSRV está localizado em http://php.net/manual/en/sqlsrv.installation.php e oferece o seguinte para Instalação:

A extensão SQLSRV é ativada adicionando o arquivo DLL apropriado ao seu diretório de extensão do PHP e a input correspondente ao arquivo php.ini. O download do SQLSRV vem com vários arquivos de driver. Qual arquivo de driver você usará dependerá de 3 fatores: a versão do PHP que você está usando, se você está usando PHP thread-safe ou não thread-safe, e se sua instalação do PHP foi compilada com o compilador VC6 ou VC9. Por exemplo, se você estiver executando o PHP 5.3, você está usando PHP não thread-safe, e sua instalação do PHP foi compilada com o compilador VC9, você deve usar o arquivo php_sqlsrv_53_nts_vc9.dll. (Você deve usar uma versão que não seja thread-safe compilada com o compilador VC9 se estiver usando o IIS como seu servidor web). Se você estiver executando o PHP 5.2, você está usando PHP thread-safe, e sua instalação do PHP foi compilada com o compilador VC6, você deve usar o arquivo php_sqlsrv_52_ts_vc6.dll.

Os drivers também podem ser usados ​​com o PDO .

Baixe drivers da Microsoft para PHP para SQL Server . Extraia os arquivos e use um destes:

 File Thread Safe VC Bulid php_sqlsrv_53_nts_vc6.dll No VC6 php_sqlsrv_53_nts_vc9.dll No VC9 php_sqlsrv_53_ts_vc6.dll Yes VC6 php_sqlsrv_53_ts_vc9.dll Yes VC9 

Você pode ver o status de segurança de thread em phpinfo ().

Adicione o arquivo correto ao seu diretório ext e a seguinte linha ao seu arquivo php.ini:

 extension=php_sqlsrv_53_*_vc*.dll 

Use o nome do arquivo que você usou.

Como Gordon já postou, esta é a nova extensão da Microsoft e usa a API sqlsrv_ * em vez de mssql_ *

Atualizar:
No Linux você não possui os drivers necessários e nem a extensão SQLSERV.
Olhe para conectar-se ao MS SQL Server do PHP no Linux? para uma discussão sobre isso.

Em resumo, você precisa instalar o FreeTDS e o YES, você precisa usar as funções do mssql_ * no linux. veja a atualização 2

Para simplificar as coisas a longo prazo, recomendo criar uma class de wrapper com funções necessárias que usam a API apropriada (sqlsrv_ * ou mssql_ *) com base na extensão que é carregada.

Atualização 2: Você não precisa usar as funções mssql_ * no linux. Você pode se conectar a um servidor ms sql usando PDO + ODBC + FreeTDS. No Windows, o método de melhor desempenho para se conectar é via PDO + ODBC + SQL Native Client, pois o driver PDO + SQLSRV pode ser incrivelmente lento.