Como conectar-se a uma base de dados SQL Server usando PHP 5.4

155 0

Esta semana tenho de apresentar na empresa onde trabalho uma nova solução para alguns dos sistemas que usamos internamente e, infelizmente, quase todos os sistemas que temos aqui actualmente são baseados em tecnologias fechadas, o que quem me conhece sabe muito bem que não me agrada tanto. Portanto, minha primeira ideia foi migrar tudo o que pudesse para tecnologias abertas e documentar melhor os nossos produtos.

O meu primeiro desafio é migrar um sistema inicialmente escrito em Visual Basic com uma base de dados SQL Server, para uma solução baseada e PHP/CakePHP e MySQL. Até ai, parecia tudo muito fácil, quando descobri que PHP não possui uma integração nativa com SQL Server da Microsoft. E o pior, a Microsoft parece não estar muito preocupada com isso!

Porque eu precisava conectar PHP ao SQL Server?

Essa é uma das perguntas que algumas pessoas podem fazer ao ler este artigo: Se a ideia era migrar a o sistema para uma solução baseada em PHP e MySQL, porque eu precisava conectar PHP ao SQL Server? E a resposta é simples, pelo menos do meu ponto de vista: Eu precisava migrar os dados do SQL Server para o PHP.

É certo que eu podia fazer isso usando MySQL Workbench, ou então exportando os dados do SQL Server para Excel e depois importando o CSV dos dados no MySQL. Mas infelizmente, por algum erro estranho no SQL Server, no desenho da Base de Dados  SQL Server ou então nos dados da tal base de dados, nenhuma das duas opções funcionou. Então decidi ir pelo método mais seguro que é criar scripts PHP para a exportar dados do SQL Server e importar no MySQL numa única execução.

Conectando o PHP 5.4 ao Microsoft SQL Server 2008

Como eu disse no início, o PHP não vem com uma integração nativa com o SQL Server, e para integrar um sistema PHP com uma base de dados SQL Server é preciso instalar o Driver de conexão que pode ser baixado do site da Microsoft.

O problema que tive é que o Driver da Microsoft simplesmente não funcionava para mim, que uso Windows 7, PHP 5.4.7 e Microsoft SQL Server 2008. A solução que tive foi baixar um Driver não oficial desenvolvido por uma alma caridosa que disponibilizou na Internet.

O Driver citado acima vem no formato RAR. descomprimindo o arquivo, encontrará uma pasta “bin”. Basta copiar o conteúdo dessa pasta para o directório “ext” do seu PHP. O passo a seguir é acrescentar uma das linhas abaixo no seu php.ini. A linha correcta a acrescentar depende da sua versão do PHP e também é necessário saber se o seu PHP é Thread Safe(TS) ou não (NTS), mas isso você pode conferir no phpinfo().

Para  PHP 5.4, NTS, use:

[PHP_SQLSRV]
extension=php_sqlsrv_54_nts.dll

[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_54_nts.dll

Para PHP 5.4, TS, use:

[PHP_SQLSRV]
extension=php_sqlsrv_54_ts.dll

[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_54_ts.dll

E finalmente, reinicie o seu servidor para ver o novo Driver a funcionar

(Visited 42 times, 1 visits today)

Elisio Leonardo

Elisio Leonardo is an experienced Web Developer, Solutions Architect, Digital Marketing Expert, and content producer with a passion for technology, artificial intelligence, web development, and entertainment. With nearly 15 years of writing engaging content on technology and entertainment, particularly Comic Book Movies, Elisio has become a trusted source of information in the digital landscape.