PHP + Banco de Dados Access
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:
* 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:
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
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
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.
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
(~18 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 !!
" 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?
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
(~20 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!
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
(~20 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!
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
(~20 anos atrás)
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!!
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
(~21 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.
Se puder me dar esta luz serei muitíssimo grato.
05/04/2004 11:54am
(~21 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
(~21 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"
Algo como: "$Conexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\bds\ARQUIVO.mdb"
28/08/2003 12:00pm
(~21 anos atrás)
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.