Exemplo de conexão com banco de dados Access em PHP

Um pequeno exemplo para mostrar o modo de conectar de um banco de dados Access com PHP por meio de ODBC.
Publicado em: 25/6/08

Valorize este artigo:
PHP dispõe de diversos jogos de funções para conectar com diferentes tipos de bancos de dados. Por exemplo, existe um jogo de funções específico para MySQL, outro para Oracle, PostgreSQL, etc. Embora não exista entre suas bibliotecas nenhuma função para acessar especificamente a um banco de dados Access. Para isso, dispomos das funções de conexão ODBC com banco de dados.

ODBC é um padrão de conexão com bancos de dados que utilizam os sistemas Windows. Com ODBC se pode acessar a qualquer banco de dados, sempre que exista o correspondente driver ODBC para esse banco de dados. As conexões ODBC são próprias de sistemas Microsoft, portanto poderemos utilizá-las através de qualquer linguagem de programação em Windows, como PHP, para acessar a qualquer banco de dados, incluindo Access.

O primeiro que teremos que fazer para conectar com PHP é criar um DSN em nosso computador. Um DSN é um nome de conexão que utilizaremos para referenciar a um banco de dados. Podemos ter tantos DSN em nosso sistema quanto necessitemos, para acessar através de aplicações ou linguagens de programação a bancos de dados por ODBC. Isto se faz através do painel de controle de Windows na opção "Ferramentas administrativas - Origens de dados ODBC". Temos que criar um DNS de sistema ou de usuário, na aba correspondente e logo apertando agregar. Há que selecionar o driver ODBC que temos que utilizar, como se trata de um banco de dados de Access, devemos selecionar o driver ODBC de Access. Logo, temos que dar um nome ao DSN e selecionar o arquivo .mdb que contém nosso banco de dados. Uma vez realizado isto, necessitaremos lembrar do nome do DSN que criamos, porque teremos que utilizá-lo em nosso código de conexão.

Referência: Explica-se como criar um DSN com mais detalhes no artigo Passos prévios II: Conexão a BD. É um capítulo do manual de ASP, porém se faz de igual forma para conectar Access com PHP.

Se tivermos nossa página hospedada em um provedor de hosting e quisermos conectar Access com PHP, se é que o permitem (pois o típico nesses casos é utilizar um banco de dados MySQL), teríamos que perguntar como criar o DSN em seus sistemas.

Uma vez que tenhamos o DSN utilizaremos um código de conexão como este:

$conn_access = odbc_connect ("guiarte_access", "", "");

Com a função odbc_connect() se conecta com um banco de dados por ODBC, indicando o nome do DSN no primeiro parâmetro e logo o usuário e a senha. Em Access normal não se tem nem sequer o usuário e senha, portanto esses dois parâmetros foram passados com uma cadeia vazia. O identificador da conexão nos devolve com o banco de dados.

Para executar uma sentença SQL utilizaremos a função odbc_exec(). Deste modo:

$rs_access = odbc_exec ($conn_access, "select * from tabela");

Como se pode ver, odbc_exec() recebe o identificador da conexão obtida anteriormente e a sentença SQL a executar. Devolve um identificador do conjunto de registros resultado de executar a sentença.

Logo utilizaremos funções como odbc_fetch_array() ou odbc_fetch_object() para acessar a cada um dos registros obtidos no conjunto de resultados.

Um código completo de conexão com um banco de dados Access poderia ser o seguinte:

if ($conn_access = odbc_connect ( "guiarte_access", "", "")){
    echo "Conectado corretamente";
    $ssql = "select * from livros";
    if($rs_access = odbc_exec ($conn_access, $ssql)){
       echo "A sentença se executou corretamente";
       while ($fila = odbc_fetch_object($rs_access)){
          echo "<br>" . $fila->titulo;
       }
    }else{
       echo "Erro ao executar a sentença SQL";
    }
} else{
    echo "Erro na conexão com o banco de dados";
}

Nota: As funções odbc_fetch_array() e odbc_fetch_object(), assim como outras funções de PHP para o acesso por ODBC a bancos de dados, são idênticos ou muito similares em sua utilização Às funções próprias para outros bancos de dados como MySQL. Em nossos manuais e workshops de PHP temos muitos exemplos de conexão e trabalho com bancos de dados MySQL, que podem nos servir de guia para aprender a trabalhar com bancos de dados Access. Simplesmente, teria que ter o DSN para a conexão com o banco de dados Access e mudar os nomes das funções como mysql_fetch_array() por suas correspondentes, como odbc_fetch_array().



Informe de Miguel Angel Alvarez - Tradução de JML



Usuários :    login / registro
Manuais relacionados
Categorias relacionadas

Home | Sobre nós | Copyright | Anuncie | Entrar em contato