Services webmasters
Partenaires
Jeux concours gratuits
 
dba_optimize
<<<
dba_popen dba_replace
>>>

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 .

<< dba_popen >>
dba_optimize DBA dba_replace
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -