Guia Carreira Programador PHP
5 minutos

Conectando no SQL Server utilizando PDO em PHP

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (11)  (0)

Neste conteúdo você aprenderá a conectar no Banco de Dados SQL Server utilizando PDO em PHP. PDO é uma classe desenvolvida especificamente para trabalhar com procedimentos relacionados a BDs.

PDO (PHP Data Objects)

Neste conteúdo você aprenderá a configurar o driver de conexão com o Banco de Dados SQL Server da Microsoft e criar uma conexão com esse BD utilizando o PDO (PHP Data Objects) e a linguagem PHP.

Para entender como funciona uma conexão utilizando o PDO, observe a Figura 1:

Conexão utilizando PDO
Figura 1. Conexão utilizando PDO

A extensão PDO define uma interface leve e consistente para acessar bancos de dados em PHP. Cada driver de banco de dados que a implementa pode utilizar os métodos para comunicação com o Banco de Dados. Observe que não é possível executar nenhuma função de banco de dados usando a extensão PDO por si só: você deve usar um driver PDO específico do banco de dados para acessar um servidor.

O PDO fornece uma camada de abstração de acesso a dados, o que significa que, independentemente do banco de dados que você está usando, as funções para emitir consultas e buscar dados são as mesmas. O PDO não fornece uma abstração de banco de dados, ou seja, ele não reescreve o SQL ou simula recursos faltantes. Você deve usar uma camada de abstração completa se precisar dessa facilidade.

Veja na Figura 2 os drivers implementados no PDO.

Drivers suportados pelo PDO conforme a documentação do PHP no site php.net
Figura 2. Drivers suportados pelo PDO conforme a documentação do PHP no site php.net

Agora vamos efetuar o download do driver do SQL Server para PHP no site da Microsoft ou clicando no link https://www.microsoft.com/en-us/download/details.aspx?id=20098&751be11f-ede8-5a0c-058c-2ee190a24fa6=True

Após efetuar o download, descompacte os arquivos e os copie para o diretório ext, conforme mostra a Figura 3. Como estamos usando o XAMPP, esse arquivo fica localizado em c:\xampp\php.

Copiando os arquivos para diretório c:\xampp\php\ext
Figura 3. Copiando os arquivos para diretório c:\xampp\php\ext

Em seguida, edite o arquivo c:\xampp\php\php.ini inserindo o código abaixo para configurar o driver de conexão com o Banco de Dados:

  extension=php_pdo_sqlsrv_7_ts_x86.dll
  extension=php_sqlsrv_7_ts_x86.dll

A inserção deve ser feita conforme a Figura 4.

Adicionando as linhas dos drivers SQL Server
Figura 4. Adicionando as linhas dos drivers SQL Server

Após efetuar esta configuração você vai reiniciar o seu servidor web (XAMPP) conforme a Figura 5:

Reiniciando o servidor web (XAMPP).
Figura 5. Reiniciando o servidor web (XAMPP).

Para efetuar a conexão com o Banco de Dados SQL Server usaremos o seguinte código.

  <?php
   
  class Conexao
  {
     private static $connection;
   
     private function __construct(){}
   
     public static function getConnection() {
   
         $pdoConfig  = DB_DRIVER . ":". "Server=" . DB_HOST . ";";
         $pdoConfig .= "Database=".DB_NAME.";";
        
         try {
             if(!isset($connection)){
                 $connection =  new PDO($pdoConfig, DB_USER, DB_PASSWORD);
                 $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
             }
             return $connection;
         } catch (PDOException $e) {
             $mensagem = "Drivers disponiveis: " . implode(",", PDO::getAvailableDrivers());
             $mensagem .= "\nErro: " . $e->getMessage();
             throw new Exception($mensagem);
         }
     }
  }

Linhas 11 e 12: Aqui temos a string de conexão com BD. No SQL Server é necessário utilizar os parâmetros Server e Database.

Linhas 14 a 24: Criamos a instância do PDO e a retornamos no método getConnection() da classe Conexao.

Veja como vamos utilizar a classe de conexão e efetuar uma consulta trazendo algumas informações do Banco de Dados:

  <?php
     define('DB_HOST'        , "servertestefabio.database.windows.net");
     define('DB_USER'        , "fabio");
     define('DB_PASSWORD'    , "Devmedia123");
     define('DB_NAME'        , "dbtestefabio");
     define('DB_DRIVER'      , "sqlsrv");
   
     require_once "Conexao.php";
   
     try{
   
         $Conexao    = Conexao::getConnection();
         $query      = $Conexao->query("SELECT nome, preco, quantidade FROM produto");
         $produtos   = $query->fetchAll();
   
     }catch(Exception $e){
         echo $e->getMessage();
         exit;
     }
   
  ?>
  <table border=1>
     <tr>
         <td>Nome</td>
         <td>Preço</td>
         <td>Quantidade</td>
     </tr>
     <?php
         foreach($produtos as $produto) {
     ?>
         <tr>
             <td><?php echo $produto['nome']; ?></td>
             <td>R$ <?php echo $produto['preco']; ?></td>
             <td><?php echo $produto['quantidade']; ?></td>
         </tr>
     <?php
         }
     ?>
  </table>

Linhas 2 a 6: Temos as constantes para definir as configurações de conexão com o Banco de Dados.

Linha 8: Incluímos o arquivo da classe Conexao.

Linhas 10 a 19: Efetuamos a consulta no Banco de Dados. Caso ocorra algum erro será exibida uma mensagem em tela e a aplicação será finalizada.

Linhas 22 a 39: Utilizamos uma estrutura de repetição (foreach) para iterar sobre o resultado do BD e imprimir em tela.

Sugestão de conteúdo

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?