7.16 DBA
7 Index des fonctions
Manuel PHP
. Introduction . Pré-requis . Installation . Configuration à l'exécution . Types de ressources . Constantes prédefinies . Exemples . dba_close . dba_delete . dba_exists . dba_fetch . dba_firstkey . dba_handlers . dba_insert . dba_list . dba_nextkey . dba_open . dba_optimize ->dba_popen . dba_replace . dba_sync
|
7.16.19 dba_popen()Ouvre une connexion persistante à une base de données dba[ Exemples avec dba_popen ] PHP 3>= 3.0.8, PHP 4
resource
dba_popen (
string
path
,
string
mode
,
string
handler
,
...
)
dba_popen
établit une connexion persistante
à la base repérée par
path
avec le mode
mode
, en utilisant l'identifiant
handler
.
path
est le chemin sur votre machine.
mode
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 poser un verrou
sur la base de données avec un caractère supplémentaire. Utilisez
le "l" pour verrouiller la base avec un fichier .lck ou bien
"d" pour verrouiller la base de données elle même. Il est important que
vos applications utilisent cela de manière cohérence. Si vous voulez
tester l'accès et ne pas attendre pour le verrou, vous pouvez ajouter
l'option "t" comme troisième caractère. Lorsque vous êtes absolument
sur que vous n'avez pas besoin du verrou de base, utilisez l'option
"-" au lieu de "l" ou "d". Lorsqu'aucun de "d", "l" ou "-" est utilisé
dba va verrouiller la base de données avec l'option "d".
handler
est le nom de l'identifiant qui sera
utilisé pour accéder à
path
.
Il est passé à
dba_popen
.
dba_popen
retourne un identifiant positif,
ou
FALSE
, suivant que la base a été ouverte, ou que
l'accès a échoué.
Note |
Il ne peut y avoir qu'un seul accès en écriture sur un fichier de base
de données DBA. Lorsque vous utilisez DBA sur un serveur web et que plusieurs
requêtes demande un verrou d'écriture, il ne peut y en avoir qu'un seul
après les autres. De plus, durant l'écriture, la lecture n'est pas autorisée.
Voyez la table suivante :
already open |
mode
= "rl" |
mode
= "rlt" |
mode
= "wl" |
mode
= "wlt" |
mode
= "rd" |
mode
= "rdt" |
mode
= "wd" |
mode
= "wdt" |
not open |
ok |
ok |
ok |
ok |
ok |
ok |
ok |
ok |
mode
= "rl" |
ok |
ok |
wait |
false |
illegal |
illegal |
illegal |
illegal |
mode
= "wl" |
wait |
false |
wait |
false |
illegal |
illegal |
illegal |
illegal |
mode
= "rd" |
illegal |
illegal |
illegal |
illegal |
ok |
ok |
wait |
false |
mode
= "wd" |
illegal |
illegal |
illegal |
illegal |
wait |
false |
wait |
false |
- ok : le second appel réussira.
- wait : le second appel attend que
dba_close
soit appelé pour le premier.
- false : le second appel retourne
FALSE
.
- illégal : vous ne pouvez pas méler les options "l" et "d"
pour l'option
mode
.
|
Note |
Depuis
PHP
4.3.0, il est possible d'ouvrir un fichier de base de données
à travers un réseau. Toutes fois, dans le cas des connexion sockets
(comme par exemple via ftp ou http), la connexion sera verrouillé, en lieu
et place du fichier. C'est une nuance importante car le verrouillage est alors
ignoré par la ressource, et il faut trouver une alternative.
|
Note |
Le verrouillage et les options de
mode
"l", "d", "-" et
"t" ont été ajoutés en PHP 4.3.0.
Dans les versions de
PHP
antérieures à
PHP
4.3.0, vous devez utiliser des
sémaphore pour vous protéger contre les accès simultanés à un gestionnaire de base
de données, à l'exception de GDBM. Voyez les
sémaphores System V .
|
Voir aussi
dba_open
et
dba_close
.
|