Clique no banner para conhecer e adquirir o meu treinamento de Bancos de Dados no Azure

Como conectar no SQL Server utilizando o PHP (Xampp) e o driver PDO no Windows

Visualizações: 47.753 views
Tempo de Leitura: 4 minutos

Olá pessoal!
Tudo certinho ?

Neste post, eu gostaria de demonstrar como conectar no SQL Server utilizando o PHP (Xampp) e o driver PDO no Windows. Muitas pessoas acabam passando por dificuldades para a instalação e configuração dos drivers, devido a pequenos detalhes técnicos que acabam não sendo observados e impossibilitam a conexão entre o PHP e o banco de dados SQL Server.

O primeiro passo para conseguir essa conexão é baixar o Microsoft® ODBC Driver 18.2.1.1 for SQL Server® para a sua máquina e realizar a instalação do driver.

O próximo passo é visualizar as informações do seu ambiente. Para isso, crie um arquivo chamado phpinfo.php na raiz do seu servidor web PHP (o diretório padrão é C:\xampp\htdocs), com o conteúdo abaixo:

Após visualizar esse arquivo no seu navegador web (http://localhost/phpinfo.php), você deverá observar uma tela como essa:

Neste tela, precisamos identificar as seguintes variáveis de ambiente:

  • Versão do PHP (no caso do exemplo, 7.1.1)
  • Arquitetura do PHP (no caso do exemplo, x86)
  • Localização do arquivo de configuração (php.ini)
  • Verificar se versão da compilação do PHP é TS (Thread-safe) ou NTS (Non Thread-safe) (no caso do exemplo, é TS)

Após identificar essas informações, vamos agora baixar o Microsoft Drivers for PHP for SQL Server, de acordo com a sua versão do PHP:

Relação entre versão do driver e versão do PHP

Versão do DriverVersão do PHPDownload do driver
5.11.0-beta1PHP 7.4 a PHP 8.2Baixar
5.10.1PHP 7.4 a PHP 8.1Baixar
5.9PHP 7.3 a PHP 8.0Baixar
5.8PHP 7.2 a PHP 7.4Baixar
4.3PHP 7.0 e PHP 7.1Baixar
4.0PHP 7.0Baixar
3.2PHP 5.6.4+ ou PHP 5.5.16+ ou PHP 5.4.32Baixar
3.1PHP 5.5.16+ ou PHP 5.4.32Baixar
3.0PHP 5.4.32 ou PHP 5.3.0Baixar
2.0PHP 5.3.0 ou PHP 5.2.4 ou PHP 5.2.13Baixar

Relação entre versão do driver e versão do driver ODBC

Clique aqui para expandir

Relação entre versão do driver e versão do banco de dados

Clique aqui para expandir
Versão do DriverVersão do Banco de Dados
4.3SQL Server 2008 R2 e acima
4.0SQL Server 2008 e acima
3.1SQL Server 2008 e acima
2.0 e 3.0SQL Server 2005 e acima

Relação entre versão do driver e versão do Windows

Clique aqui para expandir
Versão do DriverVersão do Sistema Operacional
5.11Windows Server 2012
Windows Server 2012 R2
Windows Server 2016
Windows 8
Windows 8.1
Windows 10
Windows 11

CentOS 7
Ubuntu 20.04, 20.10 & 21.04, 21.10
Debian 9, 10 & 11
Red Hat Enterprise Linux 7 & 8
SUSE 12 & 15

macOS Catalina, Mojave, Big Sur & Monterey
(Suporte ao Apple M1 ARM64)
5.10.1Windows Server 2012
Windows Server 2012 R2
Windows Server 2016
Windows 8
Windows 8.1
Windows 10
Windows 11

CentOS 7
Ubuntu 20.04, 20.10, 21.04 & 21.10
Debian 9, 10 & 11
Red Hat Enterprise Linux 7 & 8
SUSE 12 & 15

macOS Catalina, Mojave, Big Sur & Monterey
(Suporte ao Apple M1 ARM64)
5.9Windows Server 2012
Windows Server 2012 R2
Windows Server 2016
Windows 8
Windows 8.1
Windows 10
Windows 11

CentOS 7
Ubuntu 16.04, 20.04 & 20.10
Debian 9 & 10
Red Hat Enterprise Linux 7 & 8
SUSE 12 & 15

macOS Catalina, Mojave & Big Sur
5.8Windows Server 2012
Windows Server 2012 R2
Windows Server 2016
Windows 8
Windows 8.1
Windows 10
Windows 11

CentOS 7
Ubuntu 16.04 & 19.10
Debian 8 & 9 & 10
Red Hat Enterprise Linux 7 & 8
SUSE 12 & 15

macOS High Sierra, Catalina & Mojave
4.3Windows Server 2012
Windows Server 2012 R2
Windows Server 2016
Windows 8
Windows 8.1
Windows 10
CentOS 7
Ubuntu 15.10 (64-bit)
Ubuntu 16.04 (64-bit)
Debian 8 (64-bit)
Red Hat Enterprise Linux 7 (64-bit)
Mac OS Sierra (64-bit)
Mac OS El Capitan (64-bit)
4.0Windows Server 2008 SP2
Windows Server 2008 R2 SP1
Windows Server 2012
Windows Server 2012 R2
Windows Vista SP2
Windows 7 SP1
Windows 8
Windows 8.1
Windows 10
Ubuntu 15.04 (64-bit)
Ubuntu 16.04 (64-bit)
Red Hat Enterprise Linux 7 (64-bit)
3.2 e 3.1Windows Server 2008 R2 SP1
Windows Vista SP2
Windows Server 2008 SP2
Windows 7 SP1
Windows Server 2012
Windows Server 2012 R2
Windows 8
Windows 8.1
3.0Windows Server 2008 R2 SP1
Windows Vista SP2
Windows Server 2008 SP2
Windows 7 SP1
2.0Windows Server 2003 Service Pack 1
Windows XP Service Pack 3
Windows Vista Service Pack 1 or later
Windows Server 2008
Windows Server 2008 R2
Windows 7

Após identificar a versão correta do driver de acordo com a sua versão do PHP, SQL Server e Sistema Operacional, baixe o driver indicado e escolha uma pasta para extrair os arquivos durante a instalação.

Após isso, copie todos os arquivos que foram instalados para o diretório php\ext na sua instalação do Xampp (o diretório padrão é C:\xampp\php\ext)

Caso você não saiba o caminho do seu arquivo de configuração (o caminho padrão é C:\xampp\php\php.ini), na tela do phpinfo(), demonstrada logo acima, é possível identificar o caminho correto do seu arquivo php.ini buscando por Loaded Configuration File

Após copiar todos os arquivos, edite o arquivo php.ini da sua instalação e adicione os registros abaixo:
extension=php_pdo_sqlsrv_71_ts_x86.dll
extension=php_sqlsrv_71_ts_x86.dll

Lembrando que o nome das DLL’s variam de acordo com a versão do PHP (71, 70, 54, etc), Thread-safe (TS ou NTS) e arquitetura (X86 ou X64) e devem ser SEMPRE iguais ao nome dos arquivos que você baixou e copiou para o diretório php\ext.

Uma vez que você já editou o arquivo php.ini, basta reiniciar o Apache para que as alterações façam efeito, conforme demonstrado abaixo:

Abra novamente o arquivo phpinfo.php (http://localhost/phpinfo.php) e veja se agora o driver foi carregado:

Caso esteja igual ao do print, quer dizer que o driver está instalado e pronto para ser utilizado!

Script de teste de conexão

Resultado:

É isso aí!
Espero que tenham gostado desse artigo e já podem começar a criar aplicações utilizando PHP e SQL Server!

Existe ainda um link bem interessante, da própria Microsoft, que ajuda os desenvolvedores a criarem um ambiente PHP. Para acessar essa documentação, clique neste link aqui.

Forte abraço!