Conexão ao SQL Server com PHP erro!
Segue meu código para conexão.
Bom, estou tentando fazer uma conexão com meu banco de dados SQL SERVER 2012 mas não estou conseguindo, sempre recebo o seguinte erro.
Alguém sabe que erro é esse?
<?php try { $hostname = "192.168.2.9"; $dbname = "SISAC"; $username = "sa"; $pw = "9jd3n7@@"; $pdo = new PDO ("mssql:host=$hostname;dbname=$dbname","$username","$pw"); } catch (PDOException $e) { echo "Erro de Conexão " . $e->getMessage() . "\n"; exit; } $query = $pdo->prepare("select Coluna FROM nome_tabela"); $query->execute(); for($i=0; $row = $query->fetch(); $i++){ echo $i." - ".$row['Coluna']."<br/>"; } unset($pdo); unset($query); ?>
Bom, estou tentando fazer uma conexão com meu banco de dados SQL SERVER 2012 mas não estou conseguindo, sempre recebo o seguinte erro.
Erro de Conexão could not find driver
Alguém sabe que erro é esse?
Cleyton Caetano
Curtidas 0
Respostas
William
07/06/2016
Senão me falha a memória, não existe dsn para SQL Server usando PDO com "mssql"!!
Nesse post escrevi sobre os principais dsn do PDO para diversos banco de dados http://www.devwilliam.com.br/php/dsn-pdo-diversos-bancos-de-dados
Tem que baixar e habilitar a extensão pdo_sqlsrv.dll, nesse link tem mais informações sobre o download https://www.microsoft.com/en-us/download/details.aspx?id=20098
Nesse post escrevi sobre os principais dsn do PDO para diversos banco de dados http://www.devwilliam.com.br/php/dsn-pdo-diversos-bancos-de-dados
Tem que baixar e habilitar a extensão pdo_sqlsrv.dll, nesse link tem mais informações sobre o download https://www.microsoft.com/en-us/download/details.aspx?id=20098
GOSTEI 0
Cleyton Caetano
07/06/2016
Os links de download da microsoft estão dando erro!
GOSTEI 0
William
07/06/2016
Cara eu fiz o download de uma das versões tranquilamente nesse link!
GOSTEI 0
Cleyton Caetano
07/06/2016
Cara eu fiz o download de uma das versões tranquilamente nesse link!
Vou tentar novamente, após fazer a instalação basta tentar refazer a conexão?
GOSTEI 0
William
07/06/2016
Garantir que vai funcionar fica complicado, nesse post que respondi para outro usuário, relatei um pouco da minha "saga" para acessar SQL Server com PHP no Windows com IIS.
GOSTEI 0
Wellington Silva
07/06/2016
Caso tenha instalado o drive de modo correto, e o php rodar a extensão, você só vai precisar corrigir seu DSN:
$pdo = new PDO("sqlsrv:server=hostname; database=nome_banco;", USUARIO, SENHA);
GOSTEI 0
Cleyton Caetano
07/06/2016
Bom, eu instalei o drive e reiniciei o servidor.
meu script PHP agora está assim!
e continuar dando Erro de Conexão: could not find driver
meu script PHP agora está assim!
<?php try { define('USUARIO', 'sa'); define('SENHA', '9jd3n7@@'); $pdo = new PDO("sqlsrv:server=192.168.2.9; database=SISAC;", USUARIO, SENHA); } catch (PDOException $e) { echo "Erro de Conexão: " . $e->getMessage() . "\n"; exit; } $query = $pdo->prepare("select Coluna FROM nome_tabela"); $query->execute(); for($i=0; $row = $query->fetch(); $i++){ echo $i." - ".$row['Coluna']."<br/>"; } unset($pdo); unset($query); ?>
e continuar dando Erro de Conexão: could not find driver
GOSTEI 0
William
07/06/2016
Verificou se a extensão foi habilitada corretamente?
Chamando o phpinfo() você consegue ver isso.
Chamando o phpinfo() você consegue ver isso.
GOSTEI 0
Cleyton Caetano
07/06/2016
deverá aparecer mssql ou pdo_sqlsrv.dll?
GOSTEI 0
William
07/06/2016
pdo_sqlsrv.dll
GOSTEI 0
Cleyton Caetano
07/06/2016
pdo_sqlsrv.dll
Blz, amanhã vou dar uma olhada e posto aqui o resultado!
GOSTEI 0
Cleyton Caetano
07/06/2016
Bom, depois de testar tudo que pensei não consegui, fica aparecendo isso no phpinfo().
cscript /nologo configure.js "--enable-snapshot-build" "--disable-isapi" "--enable-debug-pack" "--without-mssql" "--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=c:\php-sdk\oracle\x86\instantclient_12_1\sdk,shared" "--with-oci8-12c=c:\php-sdk\oracle\x86\instantclient_12_1\sdk,shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet=shared" "--with-mcrypt=static" "--without-analyzer" "--with-pgo"
GOSTEI 0
Wellington Silva
07/06/2016
Você deve ter instalado a extensão errada.. eu acabei de instalar aqui, no meu caso o PHP é Thread Safe, e funcionou beleza..
para verificar se a extensão instalada com sucesso, execute:
se retornar true, deu certo, caso contrario está instalado errado.
não se esqueceu de adicionar no php.ini:
PHP TS
extension=php_pdo_sqlsrv_56_ts.dll
PHP NTS
extension=php_pdo_sqlsrv_56_nts.dll
para verificar se a extensão instalada com sucesso, execute:
<?php var_dump(extension_loaded('pdo_sqlsrv'));
se retornar true, deu certo, caso contrario está instalado errado.
não se esqueceu de adicionar no php.ini:
PHP TS
extension=php_pdo_sqlsrv_56_ts.dll
PHP NTS
extension=php_pdo_sqlsrv_56_nts.dll
GOSTEI 0
Cleyton Caetano
07/06/2016
Você deve ter instalado a extensão errada.. eu acabei de instalar aqui, no meu caso o PHP é Thread Safe, e funcionou beleza..
para verificar se a extensão instalada com sucesso, execute:
se retornar true, deu certo, caso contrario está instalado errado.
não se esqueceu de adicionar no php.ini:
PHP TS
extension=php_pdo_sqlsrv_56_ts.dll
PHP NTS
extension=php_pdo_sqlsrv_56_nts.dll
para verificar se a extensão instalada com sucesso, execute:
<?php var_dump(extension_loaded('pdo_sqlsrv'));
se retornar true, deu certo, caso contrario está instalado errado.
não se esqueceu de adicionar no php.ini:
PHP TS
extension=php_pdo_sqlsrv_56_ts.dll
PHP NTS
extension=php_pdo_sqlsrv_56_nts.dll
Blz, vou tentar novamente pra ver
GOSTEI 0
Cleyton Caetano
07/06/2016
Um detalhe, o PC que estou usando é não é o mesmo onde o SQL Server está instalado, mas é na mesma rede, será se tem alguma coisa haver?
GOSTEI 0
Wellington Silva
07/06/2016
Não, se o erro que estiver retornando for esse que vc postou: could not find driver.
Agora se for erro de falha na conexão, ai sim pode ser um firewall algo do tipo..
Agora se for erro de falha na conexão, ai sim pode ser um firewall algo do tipo..
GOSTEI 0
Cleyton Caetano
07/06/2016
Não, se o erro que estiver retornando for esse que vc postou: could not find driver.
Agora se for erro de falha na conexão, ai sim pode ser um firewall algo do tipo..
Agora se for erro de falha na conexão, ai sim pode ser um firewall algo do tipo..
Blz, qualquer progresso retorno aqui pra vocês!
GOSTEI 0
Cleyton Caetano
07/06/2016
Você deve ter instalado a extensão errada.. eu acabei de instalar aqui, no meu caso o PHP é Thread Safe, e funcionou beleza..
para verificar se a extensão instalada com sucesso, execute:
se retornar true, deu certo, caso contrario está instalado errado.
não se esqueceu de adicionar no php.ini:
PHP TS
extension=php_pdo_sqlsrv_56_ts.dll
PHP NTS
extension=php_pdo_sqlsrv_56_nts.dll
para verificar se a extensão instalada com sucesso, execute:
<?php var_dump(extension_loaded('pdo_sqlsrv'));
se retornar true, deu certo, caso contrario está instalado errado.
não se esqueceu de adicionar no php.ini:
PHP TS
extension=php_pdo_sqlsrv_56_ts.dll
PHP NTS
extension=php_pdo_sqlsrv_56_nts.dll
Deu false, e coloquei os parâmetros no PHP.INI mas num resolveu.
GOSTEI 0
Cleyton Caetano
07/06/2016
Você deve ter instalado a extensão errada.. eu acabei de instalar aqui, no meu caso o PHP é Thread Safe, e funcionou beleza..
para verificar se a extensão instalada com sucesso, execute:
se retornar true, deu certo, caso contrario está instalado errado.
não se esqueceu de adicionar no php.ini:
PHP TS
extension=php_pdo_sqlsrv_56_ts.dll
PHP NTS
extension=php_pdo_sqlsrv_56_nts.dll
para verificar se a extensão instalada com sucesso, execute:
<?php var_dump(extension_loaded('pdo_sqlsrv'));
se retornar true, deu certo, caso contrario está instalado errado.
não se esqueceu de adicionar no php.ini:
PHP TS
extension=php_pdo_sqlsrv_56_ts.dll
PHP NTS
extension=php_pdo_sqlsrv_56_nts.dll
Bom, depois de amanhar muito me foi retornado true, mas agora quando tento fazer a conexão me retorna esse erro!
Erro de Conexão SQLSTATE[IMSSP]: This extension requires the Microsoft ODBC Driver 11 for SQL Server to communicate with SQL Server. Access the following URL to download the ODBC Driver 11 for SQL Server for x86: http://go.microsoft.com/fwlink/?LinkId=163712
GOSTEI 0
Cleyton Caetano
07/06/2016
Minha versão é PHP Version 5.6.19, a Versão dos Drivers da Microsoft para PHP para SQL Server que instalei foi a 3.2 que como eles informam apenas essa tem suporte para PHP 5.6.4+.
No phpinfo aparece
Mesmo assim o link leva para a página de download novamente!
No phpinfo aparece
pdo_sqlsrv pdo_sqlsrv support enabled
Mesmo assim o link leva para a página de download novamente!
GOSTEI 0
Cleyton Caetano
07/06/2016
Bom, baixei o arquivo do drive neste [url:descricao=Microsoft® ODBC Driver 11 para SQL Server® - Windows
]https://www.microsoft.com/pt-br/download/details.aspx?id=36434[/url] e parece que conectou, vou criar uns códigos e ver se consigo sucesso mesmo e posto aqui, obrigada pessoal pela ajuda!
]https://www.microsoft.com/pt-br/download/details.aspx?id=36434[/url] e parece que conectou, vou criar uns códigos e ver se consigo sucesso mesmo e posto aqui, obrigada pessoal pela ajuda!
GOSTEI 0
Cleyton Caetano
07/06/2016
Pessoal, consegui recuperar os dados sim sem problemas, agora minha aplicação está se comunicando perfeitamente com o SQL Server, obrigada a todos pela ajuda!
GOSTEI 0