SommaireTelecharger la documentationChapitre suivantChapitre precedent  

  .: News :.: Edito :.: Scripts :.: Forum :.: Erreurs :.: Jobs :. 
 
Sommaire

Référence des fonctions

Apache
Tableaux
Aspell
Nombres de grande taille
Compression Bzip2
Calendrier
Paiement CCVS
Support COM pour Windows
Objets
ClibPDF
Crack
CURL
Paiement Cybercash
CyberMUT : Crédit Mutuel
Administration Cyrus IMAP
Caractères
DBA
Dates et heures
dBase
DBM
dbx
DB++ Functions
Direct IO
Accès aux dossiers
DOM XML
.NET
Gestion des erreurs
FrontBase
FilePro
Système de fichiers
Forms Data Format
FriBiDi
FTP
Fonctions
Gettext (GNU)
GMP
HTTP
Hyperwave
ICAP
Iconv
Images
IMAP
Informix
InterBase
IRC
Java
LDAP
Email
Traitement de email
Mathématiques
Chaînes de caractères multi-octets
MCAL
Chiffrage mcrypt
Fonctions MCVE
Hash
Microsoft SQL Server
Ming pour Flash
Fonctions diverses
mnoGoSearch
mSQL
MySQL
Sessions Mohawk
Fonctions muscat
Réseau
Ncurses : fonctions de contrôle du terminal
Lotus Notes functions
ODBC unifié
Oracle 8
OpenSSL
Oracle
Ovrimos SQL
Entrées/sorties
Overload
PDF
Paiement par Verisign
Options PHP et informations
POSIX
PostgreSQL
Contrôle des processus
Exécution de programmes externes
Printer functions
Pspell
Readline (GNU)
Recode (GNU)
Expressions régulières compatibles Perl
qtdom
Expressions régulières
Sémaphores et gestion de la mémoire partagée
SESAM
Sessions
Mémoire partagée
Shockwave Flash
SNMP
Sockets
Chaîne de caractères
Sybase
URL
Variables
Fonctions vpopmail
API Windows 32 bits
WDDX
Analyseur syntaxique XML
XMLRPC
XSLT
YAZ
NIS
Zip (décompression)
Zlib (Compression)

6.17 DBA


Ces fonctions sont l'interface avec les bases de type Berkeley.

C'est une couche générale pour plusieurs bases de données sur fichiers. En tant que tel, les fonctionnalités sont limitées à une partie des fonctionnalités des bases de données modernes, comme Sleepycat Software's DB2 (A ne pas confondre avec IBM's DB2 software, qui fonctionne avec ODBC).

Le comportement de certaines fonctions dépends de la base de données utilisée. Par exemple dba_optimize et dba_sync n'auront pas le même effet d'une base à l'autre.

Lors de l'utilisation de la fonction dba_open ou de dba_popen, une des librairies suivante doit être fournie comme argument. La liste complète des librairies supportées par votre configuration est disponible avec la fonction phpinfo. (Pour ajouter le support de l'une de ces librairies, ajouter l'option de configuration --with-XXXX). Liste des librairies DBA

Librairie Notes
dbm Dbm est la plus ancienne des base de données de type Berkeley. Il vaut mieux l'éviter si possible. Les fonctions de compatibilités codées dans DB2 et gdbm ne sont pas supportées, car elles ne sont compatibles qu'au niveau du code source, et ne peuvent pas gérer le format dbm originel. ( --with-dbm).
ndbm ndbm est un nouveau type de dbm plus flexible. Il a cependant la majorité des limitations du genre. ( --with-ndbm).
gdbm gdbm est la base dbm GNU. ( --with-gdbm).
db2 db2 est DB2 de Sleepycat Software. Elle se décrit comme un "ensemble d'outils qui fournissent une base de données performante, tant pour les applications indépendantes que pour le client/serveur". ( --with-db2).
db3 DB3 est le DB3 de Sleepycat Software. ( --with-db3).
cdb cdb est "un package rapide, robuste, léger, pour créer et lire des bases de données constantes". C'est l'auteur de qmail qui l'a écrit, et elle est disponible ici. Puisque c'est une base constante, elle ne supporte que la lecture. (--with-cdb).

Exemple DBA

<?php
$id 
dba_open("/tmp/test.db""n""db2");
if(!
$id) {
    echo 
"dba_open a échoué\n";
    exit;
}
dba_replace("key""Ceci est un exemple!"$id);
if(
dba_exists("key"$id)) {
    echo 
dba_fetch("key"$id);
    
dba_delete("key"$id);
}
dba_close($id);
?>

DBA gère les données binaires, et n'a pas de limites arbitraires. Elle hérite de toutes les limites de la base sous-jacentes.

Toutes les bases de données sur fichiers doivent fournir un moyen de changer le mode d'accès au fichier d'une base, et si possible, de toutes les bases. Le mode d'accès est généralement passé en 4ème argument à dba_open ou dba_popen.

Vous pouvez accéder à toutes les entrées d'une base d'une manière linéaire, avec les fonctions dba_firstkey et dba_nextkey. Vous ne devez pas modifier une base lorsque vous la traversez ainsi.

Passer en revue une base

<?php
// ...ouverture de la base...
$key dba_firstkey($id);
while(
$key != FALSE) {
    if(...) { 
// conserver la clé pour faire d'autres opérations plus tard
        
$handle_later[] = $key;
    }
    
$key dba_nextkey($id);
}
for(
$i 0$i count($handle_later); $i++)
    
dba_delete($handle_later[$i], $id);
?>

Sommaire


Chapitre précédentChapitre suivantAccueil nexen.net