Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Estou brincando um pouco com o PHP rodando no IIS 7, fazendo tanto acessos ao MySQL como ao SQL Server Express. Então vou aproveitar o gancho e deixar aqui algumas dicas que podem te ajudar a não perder tempo com alguns detalhes de configuração do ambiente.
Depois de configurar no IIS um Handler FastCGI para trabalhar com PHP (https://learn.iis.net/page.aspx/375/setting-up-fastcgi-for-php/), você deve ter feito o teste básico do <?php phpinfo() ?> e salvo o teste.php. Guarde ele…
Feito algumas gracinhas com o PHP, foi hora de acessar o MySQL. Editei o PHP.ini e retirei o comentário da linha “extension=php_mysql.dll” e fui usar a função “mysql_connect”, resultado: “PHP Fatal error: Call to undefined function mssql_connect() in …”. Esse erro foi tranquilo, reiniciei o serviço do IIS e alterei a configuração extension_dir para “.\ext” ao invés de “.\”, pois as dlls estavam nesse diretório. Tudo funcionou corretamente e continuei brincando (nota: depois eu voltei o extension_dir para “.\” e o mysql ainda continuou funcionando, o que indica que isso não trouxe nenhum benefício).
Então chegou a hora de usar o PHP para acessar o SQL Server. Como eu havia visto um php_mssql.dll no “php.ini”, fui direto lá e descomentei o bendito, mas quando fui utilizá-lo continuei recebendo o mesmo erro de função indefinida. Depois de alguns testes, deixei esse camarada de lado e baixei o SQL Server 2005 Driver for PHP Cumulative Update – October 2008 (https://www.microsoft.com/downloads/details.aspx?FamilyId=61BF87E0-D031-466B-B09A-6597C21A2E2A&displaylang=en) . Importante: esse driver funciona para SQL Server 2008 também, então não precisa ficar correndo atrás de outro.
Nota: nesse meio tempo, passei a usar uma função do php bem interessante, chamada function_exists, que nos ajuda a descobrir se o módulo foi carregado corretamente.
if (function_exists(' <nome da funcao> '))
echo "Função encontrada";
else
echo "Aonde está você???";
die("AAAARRRRGGGHHHH");
Fiz o extract do pacote, copiei o arquivo php_sqlsrv.dll para a pasta “ext” do php e configurei no arquivo php.ini esse novo módulo, adicionado “extension=php_sqlsrv.dll”. Pronto, o módulo passou a ser carregado pelo php, a verificação acima parou de reclamar e o teste.php passou a mostrar o módulo do SQL Server carregado.
Quando fui abrir minha primeira conexão e executar uma consulta, recebi outra mensagem de erro! Que passou a ser “SQLSTATE: IM002 - message: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified”. O que fazer??? Depois de um pouco de pesquisa, descobri que precisamos instalar o SQL Server 2005 ODBC driver a partir do feature pack do SQL Server 2005, que pode ser conseguido aqui: https://www.microsoft.com/downloads/details.aspx?FamilyID=50B97994-8453-4998-8226-FA42EC403D17&displaylang=en.
Feito tudo isso, eu consegui usar o PHP para fazer consultas no SQL Server Express sem a menor dificuldade, o que foi bem legal.
Espero que esse post o ajude a evitar esses pequenos detalhes de configuração, permitindo-o utilizar o SQL Server com PHP. Mais importante, você pode usar a versão Express do SQL Server, que funciona muito bem para aplicações de menor porte e possui recursos avançados, como manipulação de XML, Full-Text Search, Filestream e reporting, o que o habilita a trabalhar com alguns cenários que são restringidos em diversos outros bancos de dados relacionais.
Aproveitando a deixa, pergunto: Você está usando o SQL Server Express? Qual o tipo de aplicação?
Compartilhe aqui o seu caso para discutirmos com o pessoal.
[]s
Luciano Caixeta Moreira
luciano.moreira@microsoft.com
===============================================
This post is provided "AS IS" and confers no right
===============================================
Comments
Anonymous
February 23, 2009
OI to começando a mecher com sql, gostaria de saber como que vc conseguiu fazer isso???? pode me mnada um toturial pra eu fazer no meu email cdf-adm@hotamil.com desde ja agradeçoAnonymous
June 24, 2009
Ola tudo bem..? Estou trabalhando com PhP faz um tempinho bom, quase 3 anos, agora me surgiu uma oportunidade de emprego, mais eles utilizam o SQL Server como gerenciador do Banco, e eu somente trabalho com o MySQL, instalo o AppServ e ele ja configura o Apache e o MySQL, como faço para fazer a configuração com o SQL Server ? Poderia me Passar uma Tutorial ? Desde de já... Muito obrigado! J. Renato NetoAnonymous
June 24, 2009
Renato Ops....Meu email é jrenatoneto@gmail.com Desde de já... Muito obrigado! J. Renato Neto