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(). |
![]() | Calcular dias entre duas datas com PHP | Utilizar Curl para copiar uma imagem de uma web em nosso disco rígido | ![]() |