(PHP 4, PHP 5)
dba_open — Abrir una base de datos
dba_open() establece una instancia de base de datos para el archivo en ruta con el modo dado usando gestor .
Usualmente una ruta normal en su sistema de archivos.
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.
Note: 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:
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 .
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.
Devuelve un gestor positivo en caso de éxito, o FALSE si ocurre un error.
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). |