dba_nextkey
dba_optimize
DBA Functions
PHP Manual

# dba_open

(PHP 4, PHP 5)

dba_open — Abrir una base de datos

### Descripción

resource dba_open ( string `$ruta` , string `$modo` [, string `$gestor` [, mixed `$...` ]] )

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.

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

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

### Ver también

- dba_popen() - Abrir una base de datos de forma persistente
- dba_close() - Cerrar una base de datos DBA

dba_nextkey
dba_optimize
DBA Functions
PHP Manual