dba_open

(PHP 4, PHP 5, PHP 7)

dba_openAbrir una base de datos

Descripción

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

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.

Ver también