Avançar para o conteúdo principal

PHP e base de dados MS Access

O PHP tem uma ligação natural ao MySQL no entanto é possível utilizar outros formatos de base de dados, nomeadamente o MS Access.
A via de ligação será o ODBC - Open Data Base Connectivity.
No Windows através do Painel de Controlo acedemos às Ferramentas Administrativas e escolhemos Origem de Dados, no Windows 7 a opção está em Sistema e Segurança e depois Ferramentas Administrativas.



Um problema que pode surgir nesta ferramenta é não existirem drivers (controladores) para o MS Access, mesmo tendo o MS Access instalado! Isto deve-se ao facto de o Windows ser 64bits e a aplicação e os respectivos drivers serem 32 bits, para resolver este problema devemos correr a mesma aplicação mas a versão de 32 bits que está em
Agora que temos a versão certa da ferramenta devemos selecionar o separador Controladores para verificar se temos ou não o controlador do MS Access
Confirmada que está a existência do driver vamos então criar uma ligação à nossa base de dados para que o PHP a possa manipular, assim vamos ao separador DSN de sistema e escolhemos o botão adicionar
De seguida escolhemos o formato da base de dados
E por fim indicamos o ficheiro da base de dados e um nome que posteriormente vamos utilizar no código PHP
Neste formulário preenchemos:
Nome da origem de dados com o nome que vamos utilizar no código PHP, Descrição com uma breve descrição que permita identificar a base de dados, depois escolhemos o botão seleccionar para procurar o ficheiro da base de dados propriamente dita.

Feito isto podemos então passar ao código PHP.

Para criar uma ligação à base de dados escrevemos:

$conn=odbc_connect("nome","utilizador","palavra_passe");

Esta instrução cria a ligação à base de dados, os parâmetros são nome que deve ser igual ao nome da origem de dados, não o nome da base de dados, utilizador e palavra_passe são as credenciais necessárias para aceder à base de dados, se não existirem não se preenche.

Para, por exemplo, listar os dados de uma tabela basta fazer:


if($conn){
$sql="Select * from clientes";
$linha=odbc_exec($conn,$sql);
while(odbc_fetch_row($linha)){
$ncliente=odbc_result($linha,1);
$nome=odbc_result($linha,2);
print('NºCliente:'.$ncliente.'</p>Nome:'.$nome.'</p>');
}
}

A instrução odbc_exec executa um comando SQL na base de dados, seja uma consulta ou uma alteração dos dados (inserção, actualização ou remoção).
A função odbc_fetch_row permite controlar o ciclo e recolher um registo.
Para referenciar os campos utilizamos a função odbc_result que recebe a variável associada ao registo e o número do campo a referenciar.

Partilhar no Facebook

Comentários

Mensagens populares deste blogue

Upgrade do Windows Home para Pro sem formatar

 Há algum tempo que tentava fazer o upgrade do meu Windows 10 da versão Home para a versão Pro, mas chegava sempre a um ponto em que me era solicitado para formatar o sistema e não estava para isso. Finalmente conseguinte seguindo estes passos: - seguinte estes passos  utilizei uma das chaves genéricas para o Windows 10 Pro e fui a Settings > Update & Security > Activation > Change the product key; - após inserir uma das chaves o Windows instala as funcionalidades Pro e pede para reiniciar; - agora tem o Windows Pro mas não está ativado, assim fui ao site urcdkeys  onde comprei uma chave para o Windows Pro por menos de €20; - com essa chave voltei a funcionalidade Change the product key e ativei o Windows; - e pronto, Windows Pro ativado sem formatar ou reinstalar. Importante : eu não tenho nada a ver com o site urcdkeys por isso a vossa experiência pode correr de forma diferente da minha.

PONG em Flash AS3.0

Mais um pequeno jogo para demonstrar algumas das funcionalidades do AS3.0. Para este exemplo vamos implementar uma versão do Pong. Para este Pong vamos criar a possibilidade de acelerar a bola com a raqueta e, para tornar o jogo mais difícil, quando se atingir uma determinada pontuação fazemos aparecer uma parede no meio do campo de jogo. O código é muito parecido com o jogo do post anterior, mas um pouco mais complicado. Para controlar a nossa raqueta utilizamos a seguinte função: function teclado(e:KeyboardEvent):void{ dir_j1=0; if (e.keyCode == Keyboard.UP){ if(jogador1.y>0) jogador1.y -=5; dir_j1=-5; } if (e.keyCode == Keyboard.DOWN){ if(jogador1.y<370) jogador1.y +=5; dir_j1=5; } } Agora está mais simples pois só percorremos as linhas, ou seja, a coluna nunca muda. A raqueta que é controlada pelo computador depende do seguinte código: function movepc():void { if (bola.y>jogador2.y) jogador2.y = jogador2.y + velocidade_y; if (bola.y<jogador2.y) joga...

Game of 15

Toda a gente conhece o jogo de puzzle em que existe um espaço livre para mover as peças para os lugares certos. Para quem não conhece pode sempre clicar aqui . Imagem da wikipedia Hoje vamos resolver o jogo em C. Para começar utilizamos uma matriz 4x4 para o jogo. int jogo[4][4]; Além desta matriz vamos definir outra para armazenar a solução do jogo. int solucao[4][4]; Antes de mais nada criamos uma função para limpar e preparar a matriz de jogo e a matriz da solução: //prepara a matriz do jogo void limpar(void) { int l,c,conta=1;     n_jogadas=0;     for(l=0;l<4;l++){         for(c=0;c<4;c++){             jogo[l][c]=conta;             solucao[l][c]=conta;             conta++;         }     }     jogo[3][3]=0;     solucao[3][3]=0; } Também precisamos de uma função para mostrar o estado da matriz do jogo,...