quarta-feira, 18 de janeiro de 2012

PHP5 E SQL SERVER 2008: A dll que comanda as demais


Quando se fala na linguagem de programação PHP já se pensa logo no Banco de Dados Mysql, porém em minha caminhada decidi optar por utilizar o SQL Server 2008, não sabendo das grandes dificuldades que eu iria enfrentar.
Até aquele momento eu estava utilizando o EasyPHP, programa que reúne tudo o que precisamos (PHP + Apache + Mysql), através dele decidi seguir alguns tutoriais da internet para habilitar suas permissões para o SQL Server, não funcionou, decidi usar outra ferramenta o XAMPP, e aconteceu o mesmo, não consegui os resultados que eu gostaria.

Por fim optei pelo WAMPP, segui as seguintes orientações da internet :
1 – Baixar, copiar e colar as dll ntwdblib.dll, php_mssql.dll, php_pdo_mssql.dll nas pastas System32(C:\Windows\System32), Apache(C:\wamp\bin\apache\Apache2.2.17\bin)
e PHP(C:\wamp\bin\php\php5.3.4\ext).
2 – Abrir o arquivo php.ini (abra o servidor Wampp, clique nele, vá em PHP e em php.ini), conforme mostra a imagem a seguir :



3 – abra o arquivo php.ini e dentro dele procure por:
;extension=php_mssql.dll
;extension=php_pdo_mssql.dll

Retire é ponto e virgule de trás da frase, pois o ponto e virgule representa a linha comentada, ficando assim:
extension=php_mssql.dll
extension=php_pdo_mssql.dll

4 – Procure também por [MSSQL] e deixe as configurações desta maneira abaixo:
[MSSQL]
; Allow or prevent persistent links.
mssql.allow_persistent = On

; Maximum number of persistent links.  -1 means no limit.
mssql.max_persistent = -1

; Maximum number of links (persistent+non persistent).  -1 means no limit.
mssql.max_links = -1

; Minimum error severity to display.
mssql.min_error_severity = 10

; Minimum message severity to display.
mssql.min_message_severity = 10

; Compatibility mode with old versions of PHP 3.0.
mssql.compatability_mode = Off

; Connect timeout
mssql.connect_timeout = 30

; Query timeout
mssql.timeout = 60

; Valid range 0 - 2147483647.  Default = 4096.
;mssql.textlimit = 4096

; Valid range 0 - 2147483647.  Default = 4096.
;mssql.textsize = 4096

; Limits the number of records in each batch.  0 = all records in one batch.
;mssql.batchsize = 0

; Specify how datetime and datetim4 columns are returned
; On => Returns data converted to SQL server settings
; Off => Returns values as YYYY-MM-DD hh:mm:ss
;mssql.datetimeconvert = On

; Use NT authentication when connecting to the server
mssql.secure_connection = On

; Specify max number of processes. -1 = library default
; msdlib defaults to 25
; FreeTDS defaults to 4096
;mssql.max_procs = -1

; Specify client character set.
; If empty or not set the client charset from freetds.comf is used
; This is only used when compiled with FreeTDS
;mssql.charset = "ISO-8859-1"

5 – Abra o Wampp Server novamente, vá em PHP à php extensions e clique nas seguintes extensões marcadas de vermelho abaixo habilitando-as:



Pronto, esse é o tutorial que todos seguem na internet, se depois de tudo isto não funcionar com você saiba que não é único, aconteceu comigo também, fiquei alguns dias na internet procurando uma maneira de fazer funcionar, todos os tutoriais eram iguais, até que finalmente encontrei a solução, em um site americano, ele falava da conexão utilizando o IIS do Windows 7, poderia não ter nada haver até que em certo ponto ele citou uma nova DLL que fez sentido, trata-se da DLL php_dblib.dll, ou seja a DLL do php que controla a biblioteca de banco de dados. Apartir desse momento vi que só precisava habilitar ela, e tudo funcionou corretamente, então faça o caminho novamente:

Wampp à php à php extensions e clique em php_dblib, conforme mostra a figura.



Bom acredito que com você também pode funcionar, boa sorte.

Um comentário:

  1. Muito bom Fabiana, me ajudou muito. Meu problema está na DLL dblib... O meu Wamp não tem ela. Baixei uma, porém não rodou. Alguma solução?

    ResponderExcluir