dba_open() establece una instancia de base de
datos para el archivo en ruta con el
modo dado usando
gestor.
Lista de parámetros
ruta
Usualmente una ruta normal en su sistema de archivos.
modo
Es r para acceso de lectura,
w para acceso de lectura/escritura a una
base de datos existente, c para acceso de
lectura/escritura y creación de base de datos si no
existe actualmente, y n para crear, truncar
y tener acceso de lectura/escritura.
Adicionalmente es posible definir el método de bloqueo
de la base de datos con el siguiente caracter. Use
l para bloquear la base de datos con un
archivo .lck o d para
bloquear el archivo de base de datos mismo. Es importante que
todas sus aplicaciones hagan esto de forma consistente.
Si desea probar el acceso y no desea esperar al bloqueo puede
añadir t como el tercer
caracter. Cuando esté absulatemente seguro de que no
necesita bloquear la base de datos puede hacerlo usando
- en lugar de l o
d. Cuando ninguna de las opciones
d, l o
- es usada, dba bloqueará el archivo
de base de datos como si usara d.
Nota:
Solo puede haber un escritor para un archivo de base de
datos. Cuando use dba en un servidor web y más de una
petición requiera operaciones de escritura, ellas
sólo pueden hacerse una después de la
otra. Asimismo, no es posible tener acceso de lectura durante
un proceso de escritura. La extensión dba usa bloqueos
para prevenir estas situaciones. Vea la siguiente tabla:
Tabla 1. Bloqueo DBA
ya abierto
modo = "rl"
modo = "rlt"
modo = "wl"
modo = "wlt"
modo = "rd"
modo = "rdt"
modo = "wd"
modo = "wdt"
no abierto
ok
ok
ok
ok
ok
ok
ok
ok
modo = "rl"
ok
ok
espera
falso
inválido
inválido
inválido
inválido
modo = "wl"
espera
falso
espera
falso
inválido
inválido
inválido
inválido
modo = "rd"
inválido
inválido
inválido
inválido
ok
ok
espera
falso
modo = "wd"
inválido
inválido
inválido
inválido
espera
falso
espera
falso
ok: la segunda llamada será exitosa.
espera: la segunda llamada espera hasta que
dba_close() sea llamado para el
primero.
falso: la segunda llamada devuelve falso.
inválido: no debe mezclar los modificadores
"l" y "d" para el parámetro
modo.
gestor
El nombre del gestor
que será usado para acceder a
ruta. A él se le pasan todos los
parámetros opcionales dados a
dba_open() y puede actuar sobre ellos.
Valores retornados
Devuelve un gestor positivo en caso de éxito, o FALSE si
ocurre un error.
Registro de cambios
Versión
Descripción
4.3.0
Es posible abrir archivos de base de datos sobre una
conexión de red. Sin embargo en casos en los que se usa
una conexión de socket (como http o ftp) la
conexión será bloqueada en lugar del recurso
mismo. Esto es importante ya que en tales casos el bloqueo es
simplemente ignorado sobre el recurso y deben encontrarse
otras soluciones.
4.3.0
El bloqueo y los modificadores de modo
"l", "d", "-" y "t" fueron agregados. En versiones anteriores
de PHP, es necesario usar semáforos para prevenir el
acceso simultáneo a bases de datos para cualquier
gestor de bases de datos con excepción de GDBM. Vea el
soporte de semáforos tipo
Sistema V.
antes de 4.3.5
El modo de apertura 'c' está dañado para varios
gestores internos y trunca la base de datos en lugar de
añadir los datos a una base de datos
existente. Asimismo, dm y ndbm fallan en modo 'c' para
configuraciones típicas (esto no puede arreglarse).