Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

PHP IIS7 MSSQL Chamada para função indefinida sqlsrv_connect


Eu mesmo tive esse problema. Finalmente consegui consertar, então resolvi compartilhar.

O problema era que, embora eu tivesse a dll sqlsrv instalada (copiada para minha pasta php/ext), e Eu adicionei no meu php.ini, no IIS, estava 'desabilitado' .

Aqui estão algumas instruções passo a passo, caso alguém tenha esse mesmo problema novamente. (Ou para referência futura para mim :))

  1. Baixe (e instale) os drivers do SQL Server (.dll)
    • Instale-os executando o .exe e digitando o caminho para a pasta de extensões do php quando ele perguntar onde descompactá-los.
      • Para encontrar seu diretório de extensão atual, execute (cmd.exe) php -i | more , e procure a linha extension_dir . (Para mim, foi na quarta prensagem de more ). Alternativamente, crie um arquivo php simples contendo apenas <?php phpinfo(); ?> e execute-o no navegador. Isso fornecerá as mesmas informações, mas em um formato muito mais fácil de ler.

  2. Adicione a extensão ao seu php.ini
    • Para encontrar o php.ini correto, execute php -i | more novamente, procurando por Loaded Configuration File , ou verifique esse script php simples novamente (eu recomendo que você o faça - isso economizará tempo e esforço). O caminho encontrado é o arquivo que você precisa editar.

    • Adicione as seguintes linhas ao seu php.ini e salve-o:

      [PHP_SQLSRV] extention=php_sqlsrv_56_nts.dll

  3. Habilite a extensão no Gerenciador do IIS
    • No menu Iniciar, digite IIS Manager e pressione enter.
    • Clique no nome do seu servidor na barra lateral esquerda
    • Clique em PHP Manager
    • Em PHP Extensions , clique em Enable or Disable an Extension .
    • Se sua extensão não estiver em Enabled , procure em Disabled por isso. Quando você encontrá-lo, clique com o botão direito nele e clique em Enable no menu de contexto que aparece.

  4. Teste para ter certeza de que funcionou
    • Abra esse phpinfo() página que você criou (você fez, não foi?), e procure em Registered PHP Streams . Se você vir sqlsrv nessa lista, você está pronto!