-1

DBM no PHP

criado por Wellington Costa de Almeida em 11/06/2003 2:06pm
A maioria dos banco de dados com os quais você trabalha quando usa o PHP são relacionais.
Entratanto, os banco de dados DBM permitem que você acesse dados em uma relação de pares chave/valor, muito parecida com uma array associativa. Considere o seguinte exemplo:

<?php
$dbh = dbmopen("counter", "w");
$accesses = dbmfetch($dbh, "accessnum");
$accesses++;
dbreplace($dbh, "accessnum", $accesses);
dbmclose
?>

O leitor mais astuto pode ter notado que esse é o nosso antigo amigo contador de acessos, mas em vez de usar um arquivo texto como a maioria das pessoas faria, usamos um banco de dados DBM simples.

É verdade que os banco de dados DBM não são poderosos. Entretanto, o que eles perdem em força ganham em disponibilidade e velocidade. A maioria dos sistemas UNIX carrega algum tipo de sistema DBM, e esses podem ser implementados com banco de dados de arquivos texto simples.

Agora que já temos uma noção de como funciona o DBM, vamos dar uma aprofundada melhor no assunto...

- Criando e Abrindo um banco de dados DBM

Quando você quiser criar e depois trabalhar com um banco de dados DBM, use a função dbmopen() com a flag "c" (para 'create'):

<?php
$dbh = dbmopen("newdb", "c") or die("Não foi possível criar o banco de dados DBM");
dbminsert(&dbh, "last_access", time());
dbmclose($dbh);
?>

Como já foi mencionado na introdução, os sistemas DBM foram projetados para serem fáceis; eles estão, afinal, apenas um nível acima dos banco de dados de arquivo texto. Se você precisa criar um novo banco de dados DBM (e você tem um banco de dados DBM instalado), simplesmente precisa especificar a flag "c". O comando dbminsert pega uma variável com o resource do banco de dados ($dbh), uma chave ("last_access") e o valor dessa chave. Se você quisesse buscar o valor dessa chave, usaria a função dbmfetch();

<?php
$dbh = dbmopen("newdb", "c") or die("Não foi possível criar o banco de dados DBM");
$last_access = dbmfetch($dbh, "last_access");
dbmclose($dbh);
?>

$last_access apresentará agora a hora (em formato UNIX timestamp) em que o script foi invocado.

Bom galera, por enquanto é isso... espero que tenham gostado e que fiquem curiosos em saber o resto das funções do DBM, que realmente é muito bom e surpriendente...

Qualquer dúvida, envie um comentário abaixo!

[]'s

Comentários:

Mostrando 1 - 4 de 4 comentários
Essa foi ótima...huashuashuashuashuashuahsuashuahsuashuashuashuashuashuashuashuashuashuash
22/06/2004 8:54am (~12 anos atrás)

Wellington, vai estudar antes de falar besteira!

A função dbmopen() é que não foi encontrada, ou seja, o PHP não foi compilado pra dar suporte às funções DBM.

Só isso.
05/11/2003 8:11pm (~13 anos atrás)

Tente conferir o local do arquivo!!! Porque ele não achou o ses.php!
22/06/2003 6:33am (~13 anos atrás)

Daniel Chaves disse:
Quando tentei usar o DBM deu o seguinte erro:

Fatal error: Call to undefined function: dbmopen() in c:\arquivos de programas\apache\htdocs\ses.php on line 5

O que devo fazer?
19/06/2003 1:04pm (~13 anos atrás)

Novo Comentário:

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