Funciones de DBA
PHP Manual

dba_open

(PHP 4, PHP 5)

dba_openAbrir una base de datos

Descripción

resource dba_open ( string $path , string $mode [, string $handler [, mixed $... ]] )

dba_open() establece una instancia de una base de datos para path con mode usando handler.

Parámetros

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.

Valores devueltos

Devuelve un gestor positivo en caso de éxito o FALSE en caso de error.

Historial de cambios

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).

Ver también


Funciones de DBA
PHP Manual