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

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,...

Encriptar e Desencriptar

Com o .Net podemos facilmente codificar e descodificar mensagens através do namespace Cryptography. Neste post vamos estudar um programa que encripta um texto com base numa palavra passe e posteriormente descodifica a mensagem. Começamos por criar uma função para encriptar: string codifica(string mensagem, string ppasse) {   //este vector vai ficar com a mensagem encriptada   byte [] mensagem_codificada;  //vamos utilizar codificação UTF8   System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();   // Vamos utilizar o algoritmo MD5 para fazer o Hash da palavra passe   MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider();   //Agora podemos então fazer o hash da palavra passe   byte[] TDESChave = HashProvider.ComputeHash(UTF8.GetBytes(ppasse));   //De seguida vamos escolher o algoritmo de encriptação   TripleDESCryptoServiceProvider TDESAlgoritmo = new TripleDESCryptoServiceProvider();   //Confi...