(PHP 4, PHP 5)
dba_open — Abrir una base de datos
dba_open() establece una instancia de una base de datos para
path
con mode
usando
handler
.
path
Comúnmente una ruta normal de su sistema de ficheros.
mode
Es r para acceso de lectura, w para acceso de lectura/escritura de una base de datos existente, c para acceso de lectura/escritura y creación de una base de datos si no existe actualmente, y n para crear, truncar y acceso de lectura/escritura. La base de datos se crea en el modo BTree, los demás modos (como Hash o Queue) no están soportados.
Además se puede establecer el método de bloqueo de la base de datos con el siguiente carácter. Use l para bloquear la base de datos con un fichero .lck o d para bloquear el fichero de la base de datos mismo. Es importante que todas sus aplicaciones hagan esto de manera consistente.
Si quiere probar el acceso y no quiere esperar para el bloqueo puede añadir t como tercer carácter. Cuando está absolutamente seguro de que no se requiere el bloqueo de la base de datos, puede usar - en lugar de l o d. Cuando no se usar d, l o -, dba bloqueará el archivo de la base de datos como si lo estuviera con d.
Nota:
Sólo puede haber un escritor para el archivo de la base de datos. Cuando se usa dba en un servidor web y más de una solicitud requiere operaciones de escritura, sólo pueden hacerlo una tras otra. Tampoco está permitido la lectura durante la escritura. La extensión dba usa bloqueos para impedirlo. Véase la siguiente tabla:
Bloqueo de DBA ya abierta mode
= "rl"mode
= "rlt"mode
= "wl"mode
= "wlt"mode
= "rd"mode
= "rdt"mode
= "wd"mode
= "wdt"sin abrir 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: la segunda llamada tendrá éxito.
- wait: la sedunda llamada esperará hasta que se llame a dba_close() la primera vez.
- false: la segunda llamada devuelve false.
- illegal: no se pueden mezclar los modificadores "l" y "d" con el parámetro
mode
.
handler
El nombre del gestor que
será usado para acceder a path
. Se le pasan
todos los parámetros opcionales dados a dba_open() y
puede actuar en su nombre.
Devuelve un gestor positivo en caso de éxito o FALSE
en caso de error.
Versión | Descripción |
---|---|
4.3.0 | Es posible abrir ficheros de bases de datos sobre conexiones de red. Sin embargo, en el caso en que se use una conexión de socket (como con http o ftp) la conexión se bloqueará en lugar del recurso en sí. Esto es importante para saber que en tales casos el bloqueo es ignorado simplemente en el recurso y se tienen que encontrar otras soluciones. |
4.3.0 |
Se añadió el bloqueo y los modificadores de mode
"l", "d", "-" y "t".
En versiones anteriores de PHP, se debe usar semáforos para protegerse de
accesos simultáneos a la base de datos para cualquier gestor de bases de datos, con la excepción
de GDBM. Véase el soporte de semáforos para System V.
|
4.3.5 | El modo de apertura 'c' era roto por varios gestores internos y truncaba la base de datos en vez de añair información a una base de datos existente. También dbm y ndbm fallaban en el modo 'c' en configuraciones típicas (esto no se puede arreglar). |