Trabalhando com Banco de Dados DBASE
Lendo um registro do banco de dados (parte 1)
A função dbase_get_record() lê um registro do banco de dados e o retorna em um vetor.
Cada campo é convertido ao tipo de dados apropriado do PHP, exceto:
- Datas que permanecem como strings
- Inteiros que teriam causado um transbordamento (> 32 bits) que seriam devolvidos como string.
Além dos indices numéricos o vetor que contém os dados do registro contém um índice associativo de nome 'deleted' que indica se o registro está marcado ou não, o valor 1 indica que este campo está marcado e 0 caso contrário.
Segue abaixo um exemplo de sua utilização:
Lendo um registro do banco de dados (parte 2)
A função dbase_get_record_with_names() lê um registro do banco de dados e o retorna em um vetor associativo. Essa função é idêntica a dbase_get_record() exceto que o vetor retornado por dbase_get_record_with_names() é associativo, sendo que cada índice do vetor corresponde ao nome de um campo no banco de dados.
Segue abaixo um exemplo de sua utilização:
Procurei desenvolver os scripts bem simplificados de forma que facilitasse o entendimento.
Espero ter ajudado, até a próxima.
array dbase_get_record (int dbase_identifier, int record)
A função dbase_get_record() lê um registro do banco de dados e o retorna em um vetor.
Cada campo é convertido ao tipo de dados apropriado do PHP, exceto:
- Datas que permanecem como strings
- Inteiros que teriam causado um transbordamento (> 32 bits) que seriam devolvidos como string.
Além dos indices numéricos o vetor que contém os dados do registro contém um índice associativo de nome 'deleted' que indica se o registro está marcado ou não, o valor 1 indica que este campo está marcado e 0 caso contrário.
Segue abaixo um exemplo de sua utilização:
<?php $db = dbase_open("clientes.dbf", 0); $registro = dbase_get_record($db, 1); print "data : $registro[0]<br>"; print "nome : $registro[1]<br>"; print "idade : $registro[2]<br>"; print "email : $registro[3]<br>"; print "membro: $registro[4]<br>"; // agora verificamos se o registro está marcado if ($registro['deleted']) { print '__DELETADO__'; } dbase_close($db); ?>
Lendo um registro do banco de dados (parte 2)
array dbase_get_record_with_names (int dbase_identifier, int record)
A função dbase_get_record_with_names() lê um registro do banco de dados e o retorna em um vetor associativo. Essa função é idêntica a dbase_get_record() exceto que o vetor retornado por dbase_get_record_with_names() é associativo, sendo que cada índice do vetor corresponde ao nome de um campo no banco de dados.
Segue abaixo um exemplo de sua utilização:
<?php $db = dbase_open("clientes.dbf", 0); $registro = dbase_get_record_with_names($db, 1); print "data : $registro[data]<br>"; print "nome : $registro[nome]<br>"; print "idade : $registro[idade]<br>"; print "email : $registro[email]<br>"; print "membro: $registro[membro]<br>"; // agora verificamos se o registro está marcado if ($registro['deleted']) { print '__DELETADO__'; } dbase_close($db); ?>
Procurei desenvolver os scripts bem simplificados de forma que facilitasse o entendimento.
Espero ter ajudado, até a próxima.
Rapáz, sei que faz um tempinho que acessaram o arquivo, mas para não abrir outro tópico estou escrevendo nesse mesmo.
O problema é que ainda estou recebendo a mensagem de erro quando tento manipular o arquivo .dbf
Fatal error: Call to undefined function dbase_open() in /var/www/site/arquivo.php on line 10
Já fiz a instalação do módulo php-db, mas mesmo assim não identifiquei no php.ini a extension=php-dbase.so (uso linux).
Coloquei a extension na marra e também não funcionou...
Continuo com o problema, alguém tem outra solução?
Grato.
O problema é que ainda estou recebendo a mensagem de erro quando tento manipular o arquivo .dbf
Fatal error: Call to undefined function dbase_open() in /var/www/site/arquivo.php on line 10
Já fiz a instalação do módulo php-db, mas mesmo assim não identifiquei no php.ini a extension=php-dbase.so (uso linux).
Coloquei a extension na marra e também não funcionou...
Continuo com o problema, alguém tem outra solução?
Grato.
16/09/2010 11:33am
(~14 anos atrás)
Existe alguma solução para o caso de acesso concorrente à modificação de registros?
Como pode ser feito um controle para não danificar o banco de dados, ou seja, não permitir modificações concorrentes?
Como pode ser feito um controle para não danificar o banco de dados, ou seja, não permitir modificações concorrentes?
20/12/2005 4:57am
(~19 anos atrás)
Olá, Leonardo, como vai, sou novo na lista e acompanhei o seu artigo e não rodou, abilitei a dll no php.ini e nada, isso offline, onde preciso que rode a aplicação. Uso o easyPHP como servidor interno, no Windows. Um pouco da aplicação, preciso resgatar dados num .DBF de uma outra aplicação pelo php, pelo seu artigo vi que consiguirei, só falta mesmo rodar. o erro que dá é:
Fatal error: Call to undefined function: dbase_open() in c:\arquivos de programas\easyphp1-8\www\teste dbf\index.php on line 2
Se puder ajudar, agradeço
Abraço
Fatal error: Call to undefined function: dbase_open() in c:\arquivos de programas\easyphp1-8\www\teste dbf\index.php on line 2
Se puder ajudar, agradeço
Abraço
10/11/2005 11:19am
(~19 anos atrás)
quero saber como eu faco para colocar um registro em ordem alfabetica .. no caso quando esta saindo como resultado de uma busca..
30/10/2005 11:09am
(~19 anos atrás)
S@lve,
Alguém poderia me informar como fazer, para habilitar meu php para suportar o dbase_create.
Detalhe: uso a versão 4.0.3 instalado via pacote RPM, e eu não consigo usar a opção ./configure --enable-dbase.
Alguém ja passou por esse problema.
Grato,
Rodrigo
Alguém poderia me informar como fazer, para habilitar meu php para suportar o dbase_create.
Detalhe: uso a versão 4.0.3 instalado via pacote RPM, e eu não consigo usar a opção ./configure --enable-dbase.
Alguém ja passou por esse problema.
Grato,
Rodrigo
16/08/2004 5:32pm
(~20 anos atrás)
Muito bom o artigo, é claro que para utilizar o dbase como banco de dados web não é bom, mas para o meu caso que só preciso ler alguns (poucos) registros e mostrar na tela, funcionou muito bem.
23/11/2003 7:38am
(~21 anos atrás)
Caro, tem como criar uma consulta sql? ou é necessário percorrer todo o banco para extrair uma informação
08/11/2003 2:53pm
(~21 anos atrás)
É normal essa lentidão, o clipper tem suporte nativo a dbase, ja o php não.
E como eu descreví no artigo, não aconselho a usar a base de dados dbase na web, em vez disso converta seu arquivo dbase em instruções sql com meu scritp que disponibilizei aqui no phpbrasil, convert_dbase_sql .
Boa sorte.
E como eu descreví no artigo, não aconselho a usar a base de dados dbase na web, em vez disso converta seu arquivo dbase em instruções sql com meu scritp que disponibilizei aqui no phpbrasil, convert_dbase_sql .
Boa sorte.
06/09/2003 12:36pm
(~21 anos atrás)
Vi suas dicas para acessar o dbase, mas em um banco de dados com cerca de 8 mil registros demora um pouco para aparecer na tela o select (select *), o que nao aontece no clipper (que na mesma situacao e bem rapido) ambos estao locais. E normal? Para acessar a base dbase o php e assim mesmo, tao mais lento que o clipper? ou fiz alguma coisa errada? Se quiser posso mandar o codigo.
Obrigado desde ja
Obrigado desde ja
06/09/2003 7:11am
(~21 anos atrás)
Preciso criar uma rotina que lê registros de um arquivo DBF com poucos registros e os mostrar na tela. Alguém poderia me informar como fazer para habilitar meu php para suportar o dbase_create.
Abraços a todos