8.20 DBA
8 Référence des fonctions
Manuel PHP
. Introduction . Pré-requis . Installation . Configuration à l'exécution . Types de ressources . Constantes pré-définies . Exemples . dba_close . dba_delete . dba_exists . dba_fetch . dba_firstkey . dba_handlers . dba_insert . dba_key_split . dba_list . dba_nextkey ->dba_open . dba_optimize . dba_popen . dba_replace . dba_sync
|
8.20.18 dba_open()Ouvre une base de données DBA[ Exemples avec dba_open ] PHP 3>= 3.0.8, PHP 4 , PHP 5
resource
dba_open (
string
path
,
string
mode
,
string
handler
,
...
)
dba_open
établit une connexion à
la base repérée par
path
avec le
mode
mode
et l'identifiant
handler
.
-
path
-
Chemin sur votre système de fichiers.
-
mode
-
Il vaut
r
pour lecture seule,
w
pour
lecture/écriture,
c
pour lecture/écriture, et
création si la base n'existe pas, et
n
pour
création, écrasement et accès en lecture/écriture.
De plus, vous pouvez choisir la méthode de verrouillage de la base avec le
caractère suivant. Utilisez
l
pour vérrouiller la base avec un
fichier
.lck
, ou
d
pour verrouiller
la base elle-même. Il est important que vos application utilisent ces
options de manière cohérente.
Si vous voulez tester la possibilité
d'accès, et ne pas attendre la disponibilité du verrou, vous pouvez
ajouter la lettre
t
comme troisième caractère. Lorsque
vous êtes absolument certain que votre base ne requiert pas de
verrou, vous pouvez utiliser le tiret
-
à la place de
l
ou
d
.
Lorsque vous n'utilisez ni
d
, ni
l
ni
-
, dba va verrouiller en mode
d
.
Note |
Il ne peut y avoir qu'un seul type d'écriture dans la base. Lorsque vous
utilisez dba sur un serveur web, et que plusieurs requêtes HTTP effectuent
des écritures, elles ne peuvent être faites que l'une après l'autre. De même,
la lecture durant l'écriture n'est pas possible. L'extension dba utilise
un verrou pour éviter ces problèmes. Voici la table de verrouillage :
déjà ouverte |
mode
= "rl" |
mode
= "rlt" |
mode
= "wl" |
mode
= "wlt" |
mode
= "rd" |
mode
= "rdt" |
mode
= "wd" |
mode
= "wdt" |
non-ouverte |
ok |
ok |
ok |
ok |
ok |
ok |
ok |
ok |
mode
= "rl" |
ok |
ok |
attente |
FALSE
|
illegal |
illegal |
illegal |
illegal |
mode
= "wl" |
attente |
FALSE
|
attente |
FALSE
|
illegal |
illegal |
illegal |
illegal |
mode
= "rd" |
illegal |
illegal |
illegal |
illegal |
ok |
ok |
attente |
FALSE
|
mode
= "wd" |
illegal |
illegal |
illegal |
illegal |
attente |
FALSE
|
attente |
FALSE
|
- ok: Le second appel réussit.
- wait: Le second appel attend que
dba_close
soit appelé par le premier script.
- FALSE
: Le second appel retourn
FALSE
.
- illegal: vous ne devez pas mélanger les options "l" et "d" pour le paramètre
mode
.
|
-
handler
-
Le nom du gestionnaire
qui doit être utilisé pour accéder à
path
.
C'est passé à tous les paramètres facultatifs donnés à
dba_popen
et peut agir au nom d'eux.
Retourne un gestionnaire positif en cas de succès, ou
FALSE
si une erreur survient.
Version |
Description |
4.3.0 |
il est possible d'ouvrir la base de données à travers
le réseau. Toutefois, dans le cas où des connexions sockets seront utilisées
(via HTTP ou FTP), la connexion sera verrouillée, et non pas la ressource. C'est
important de le savoir pour comprendre que dans ce cas, le verrouillage sera
ignoré, et d'autres solutions doivent être trouvées.
|
4.3.0 |
Le paramètre de verrouillage
mode
et les options
"l", "d", "-" et "t" ont été ajoutées.
Dans les versions de PHP antérieures à la PHP 4.3.0, vous deviez
utiliser des sémaphores pour éviter les accès concurents à la base
de données, hormis pour celles de type GDBM. Voyez le chapitre sur les
sémaphores System V.
|
before 4.3.5 |
le mode 'c' est inopérant pour de nombreux
gestionnaires internes, et tronque la base au lieu d'ajouter les
données à la base existante. De plus,
dbm
et
ndbm
échoue en mode 'c' dans des configurations typiques
(impossible à corriger).
|
|