+1

PHP + Banco de Dados Access

criado por Wellington Costa de Almeida em 08/07/2002 7:06pm
O objetivo dessa técnica é de ajudar os programadores que estiverem com problemas em seu banco de dados MySQL ou outro, e possam escolher por usar esse servidor que é mais simples, mas muitas vezes muito conveniente.

Vamos lá, para começar devemos configurar os drivers para a execução do Access no PHP.
Obs: Só é possivel a execução em servidores de PHP que rodam em plataformas Windows.

Faça o seguinte:

1. Clique em Iniciar - Painel de Controle - Fontes de Dados ODBC (32 Bits)
2. Escolha a "aba" NFD de sistema.
3. Clique em Adicionar e escolha Microsoft Access Driver(*.mdb) da lista e clique em Finalizar.
4. Na tela que vai se abrir digite o seguinte:
Nome da fonte de dados: Access (você pode dar o nome que quiser) e depois clique em Criar!
Dê um nome para a base de dados (teste.mdb) e clique em OK.
Depois de ter feito isso, abra o teste.mdb no Access e crie uma tabela (tb_teste) conforme segue abaixo:

Nome do Campo ---- Tipo de Autenticação
----------------------------------------|
id ---------------------- AutoNumeração |
nome -------------------- texto         |
nick -------------------- texto         |
email ------------------- texto         |
website ----------------- texto         |
----------------------------------------|

* Popule a tabela com algumas informações para criarmos um exemplo prático.

--> Exemplo Prático

Crie um arquivo com o nome db_access.php e coloque as informações abaixo:

<?php
$con = odbc_connect("Access","","") or die("Erro na conexão com o banco de dados. Por favor entre em contato com o adiministrador."); 
$sql = odbc_exec($con,"SELECT * FROM tb_teste"); 
$i=0; 
while(odbc_fetch_row($sql)) { 
    $i++; 
    echo odbc_result($sql,"id"); 
    echo odbc_result($sql,"nome"); 
    echo odbc_result($sql,"nick"); 
    echo odbc_result($sql,"email"); 
    echo odbc_result($sql,"website"); 
    echo "<br>"; 
} 
?>

Feito isso basta acessar o arquivo db_access.php e você terá pronto o seu script com banco de dados em Access.

Este exemplo é muito simples de fazer e tem como finalidade listar os dados da tabela (tb_teste). Com o uso das funções ODBC do PHP você poderá expandir esse exemplo no que precisar.

Lembre-se que estas funções do PHP so podem ser usadas em servidores PHP/Windows que são infelizmente a minoria no Brasil, pelo menos no que se refere a hostings baseados na plataforma Windows.

Qualquer dúvida publique um comentário e ficarei feliz em responder.

[]'s

Comentários:

Mostrando 1 - 10 de 23 comentários
Algumas pessoas deveriam tomar cuidado com o q escrevem , o artigo não esta errado; O acesso a base de dados ODBC pode ser feita de duas maneiras, uma com odbc_connect("Access","","") --> nome do DSN ,ususario,senha ; e também pode ser feita informando o fullpath do arquivo + driverDSN como em odbc_connect("DRIVER={Microsoft Access Driver (*.mdb)}; etc..etc.. ; As duas maneiras estao corretas e a segunda é usada quando não se tem acesso a criar uma conexão ODBC fisicamente no servidor; O que o colunista esqceu de escrever é que para acessar da 1º maneira se receber erros de ("Warning: SQL error: [Microsoft][ODBC Driver Manager] Nome da fonte de dados não encontrado e nenhum driver padrão especificado" ...) Você deve ter criado a sua BASE de conexão na guia "fonte de dados de usuario" e não em "fonte de dados de sistema" --> motivo , se criar em DSN de sistema ela estara acessivel para qualquer usuario, inclusive para o do IIS ou apache ,lembro que para isso precisa ter direitos administrativos.
Outra fantasia que vi ser comentada por aqui é sobre instalação de PHP no windows ; eu uso PHP e MYSQL no windows rodando no IIS, não achei necessidade no apache pq o apache funciona melhor no linux pelo gerenciamento de memoria, assim o IIS é nativo windows ;posso usar PHP e ASP na mesma maquina por causa do IIS; particularmente prefiro apache + php + mySQL no linux , mas temos q nos adaptar; O artigo é bem interessante mais devia acrscentar que não se resume a acesso access e sim a qualquer base de dados que possibilite configuração via ODBC; Este é um recurso muito usado em paginas ASP; parabéns pelo artigo.
26/08/2007 4:57pm (~16 anos atrás)

a disse:
Este artigo deveria ser considerado praticamente inválido! Está tudo errado o que esse cara aí escreveu. O código não funciona e não funcionará, por que devem ser feitas chamadas ao driver de conexão de ACCESS e nem isso o "articulista" disse...

O script certo, deveria ficar assim:

===========================================================


$dbq = str_replace("/", "\\", $_SERVER["DOCUMENT_ROOT"]) . "\\caminho\\para\\o\\banco.mdb";
if (!file_exists($dbq)) { echo "Droga!<br />O Banco de dados não existe! $dbq"; }

$con = odbc_connect("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$dbq", "ADODB.Connection", "", "SQL_CUR_USE_ODBC");

$sql = odbc_exec($con,"SELECT * FROM produtos");
$i=0;
while(odbc_fetch_row($sql)) {
$i++;
echo odbc_result($sql,"id") . " - ";
echo odbc_result($sql,"produto") . " - ";
echo odbc_result($sql,"valor_venda") . " - ";
echo "<br>";
}

===========================================================

Tá aí.

Deixa de ser picareta cara.

Quando for escrever e publicar para uma comunidade, escreve algo que preste. Não saia copiando de qualquer lugar pra jogar no site não.
31/01/2007 3:34am (~17 anos atrás)

Estou com o problema de conexao com a base de dados em Access, fiz o esquema que o Wellington mandou, mas nao deu certo. Abaixo a mensagem de erro:

" Warning: SQL error: [Microsoft][ODBC Driver Manager] Nome da fonte de dados não encontrado e nenhum driver padrão especificado, SQL state IM002 in SQLConnect in c:\apache\util\testes.php on line 13
Erro na conexão com o banco de dados. Por favor entre em contato com o adiministrador"

Por favor ajudam me !!
21/07/2005 8:31am (~19 anos atrás)

Tive problema para fazer a conecxão do PHP ao ms Access.

Erro:
Warning: odbc_connect() [function.odbc-connect]: SQL error: , SQL state 00000 in SQLConnect in C:\GPB\bd\Teste.php on line 2
Erro na conexão com o banco de dados. Por favor entre em contato com o adiministrador.

Alguém pode me ajudar?
25/01/2005 5:51am (~19 anos atrás)

Esses comandos seriam parecidos com os outros, vejamos...
continuando no mesmo exemplo, só mudando o comando e fazendo uma exclusão específica do id "1"
$sql = odbc_exec($con,"DELETE * FROM tb_teste WHERE id='1'");

para inserir
$sql = odbc_exec($con,"INSERT INTO tb_teste (nome, nick) VALUES ('meu nome', 'meu nick')");

para atualizar
$sql = odbc_exec($con,"UPDATE tb_teste SET nome='meu novo nome', nick='meu novo nick', email='meu novo email'");

OBS: eu fiz isso em ASP, para exemplo mais detalhado, mande-me um e-mail!
03/11/2004 2:15pm (~19 anos atrás)

Olá pessoal..

Bem o banco de dados do access que estou acessando é feito por um outro programador.. e ele fez questão de complicar a minha vida colocando o nome dos campos com espaços e acentos. Ex: Código Cliente.

Bem para acessá-los estou fazendo o seguinte:
$cod = odbc_result($sql,"Código Cliente"); // retorna um erro
$cod = odbc_result($sql,1); // Dá certo, pois o campo Código Cliente é o 1º da tabela

Mas na hora de fazer:
$sql = odbc_exec($odb,"SELECT * FROM Membros WHERE Código Cliente = '909'");

ele retorna um ero...
Gostaria de saber como fazer para interagir o id do campo o valor.. EX:
$sql = odbc_exec($odb,"SELECT * FROM Membros WHERE campo_de_id_1 = '909'");

Desde já agradeço! Tibério Brasil!
29/08/2004 10:20am (~19 anos atrás)

Manoel Pedro disse:
Muito boa sua matéria. Mas faltou falar sobre as inclusões (INSERT INTO), atualizações (UPDATE) e exclusões (DELETE). Por sinal, esta dúvida é de muitos usuários deste site bem como de alguma outras listas que andei consultando.

Será que é possível fazer alterações em Banco de Dados Access? Fica a pergunta no ar...

Forte abraços a todos!!
10/04/2004 12:30pm (~20 anos atrás)

Excelente artigo o seu! Mas gostaria de saber se posso fazer inclusões e alterações no bd Access e quais são as rotinas que devem ser implementadas.
Se puder me dar esta luz serei muitíssimo grato.
05/04/2004 11:54am (~20 anos atrás)

O Artigo é muito bom, já havia utilizado essa técnica para importar os dados de um banco Access de um sistema em VB para uma aplicação web Php/Mysql e essa foi a melhor técnica, apesar de cuidado com a conversão dos dados tipo Moeda.
03/02/2004 8:23am (~20 anos atrás)

Existe alguma forma de fazer o PHP conectar a um BD ACCESS sem a utilização de ODBC?
Algo como: "$Conexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\bds\ARQUIVO.mdb"
28/08/2003 12:00pm (~20 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)