Fórum Conexão ao SQL Server com PHP erro! #555809

07/06/2016

0

Segue meu código para conexão.

<?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

Cleyton Caetano

Responder

Posts

07/06/2016

William

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
Responder

Gostei + 0

08/06/2016

Cleyton Caetano

Os links de download da microsoft estão dando erro!
Responder

Gostei + 0

09/06/2016

William

Cara eu fiz o download de uma das versões tranquilamente nesse link!
Responder

Gostei + 0

09/06/2016

Cleyton Caetano

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?
Responder

Gostei + 0

09/06/2016

William

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.
Responder

Gostei + 0

09/06/2016

Wellington Silva

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);
Responder

Gostei + 0

09/06/2016

Cleyton Caetano

Bom, eu instalei o drive e reiniciei o servidor.

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
Responder

Gostei + 0

09/06/2016

William

Verificou se a extensão foi habilitada corretamente?

Chamando o phpinfo() você consegue ver isso.
Responder

Gostei + 0

09/06/2016

Cleyton Caetano

deverá aparecer mssql ou pdo_sqlsrv.dll?
Responder

Gostei + 0

09/06/2016

William

pdo_sqlsrv.dll
Responder

Gostei + 0

09/06/2016

Cleyton Caetano

pdo_sqlsrv.dll


Blz, amanhã vou dar uma olhada e posto aqui o resultado!
Responder

Gostei + 0

10/06/2016

Cleyton Caetano

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"
Responder

Gostei + 0

10/06/2016

Wellington Silva

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:

<?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
Responder

Gostei + 0

12/06/2016

Cleyton Caetano

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:

<?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
Responder

Gostei + 0

12/06/2016

Cleyton Caetano

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?
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar