MANUAL DE PHP

(y algo mas)windsurf pozo izquierdo
Google
search for in the  
ELMARRAJO.COM mysql bulma desarrollo web linux fedora html ayuda

windsurf mercedes camper

XXIV. Funciones de la Capa de Abstracción de Bases de Datos (tipo-dbm)

Introducción

Estas funciones forman la base para acceder a bases de datos tipo Berkeley DB.

Esta es una capa general de abstracción para varias bases de datos basadas en archivos. Como tal, su funcionalidad está limitada al sub-conjunto común de características que soportan bases de datos modernas como DB2 de Sleepycat Software. (No confundirla con el software DB2 de IBM, el cual es soportado por medio de las funciones ODBC.)

Requisitos

El comportamiento de varios aspectos depende de la implementación de la base de datos interna. Funciones como dba_optimize() y dba_sync() harán lo que prometen para una base de datos y no tendrán efecto sobre otras. Es necesario descargar e instalar los gestores de base de datos soportados.

Tabla 1. Lista de gestores de DBA

GestorNotas
dbm Dbm es el tipo más antiguo (original) de bases de datos tipo Berkeley DB. Es recomendable evitarlo, en lo posible. No soportamos las funciones de compatibilidad incorporadas en DB2 y gdbm, ya que solo son compatibles en el nivel de código fuente, pero no pueden gestionar el formato dbm original.
ndbm Ndbm es un tipo más reciente y flexible que dbm. Aun tiene muchos de los límites arbitrarios de dbm (y por lo tanto es obsoleto).
gdbm Gdbm es el administrador de bases de datos GNU.
db2 DB2 es el formato DB2 de Sleepycat Software. Es descrito como "un grupo de herramientas programáticas que ofrecen soporte incorporado y de alto rendimiento de bases de datos tanto para aplicaciones independientes como cliente/servidor".
db3 DB3 es DB3 de Sleepycat Software.
db4 DB4 es DB4 de Sleepycat Software. Este se encuentra disponible desde PHP 4.3.2.
cdb Cdb es "un paquete rápido, confiable y ligero para crear y leer bases de datos constantes." Es del creador de qmail y puede encontrarse en http://cr.yp.to/cdb.html. Ya que es constante, sólo soportamos las operaciones de lectura. Y desde PHP 4.3.0 soportamos escritura (no actualización) a través de la biblioteca cdb interna.
cdb_make A partir de PHP 4.3.0 soportamos la creación (no actualización) de archivos cdb cuando la biblioteca cdb incorporada es usada.
flatfile Este formato está disponible desde PHP 4.3.0 únicamente para efectos de compatibilidad con la extensión obsoleta dbm y debería evitarse. Sin embargo es posible usarlo cuando los archivos fueron creados en este formato. Eso ocurre cuando 'configure' no encuentra alguna biblioteca externa.
inifile Este se encuentra disponible desde PHP 4.3.3 y tiene la capacidad de modificar archivos php.ini desde scripts PHP. Cuando se trabaja con archivos ini es posible pasar matrices de la forma array(0=>grupo,1=>nombre_valor) o cadenas de la forma "[grupo]nombre_valor" en donde el grupo es opcional. Dado que las funciones dba_firstkey() y dba_nextkey() devuelven representaciones tipo cadena de la clave, existe una nueva función, dba_key_split(), disponible desde PHP 5 que permite convertir las claves tipo cadena en claves tipo matriz sin perder FALSE.
qdbm Este se encuentra disponible desde PHP 5.0.0. La biblioteca qdbm puede encontrarse en http://qdbm.sourceforge.net.

Cuando se invocan las funciones dba_open() o dba_popen(), uno de los nombres de gestor debe entregarse como argumento. La lista de gestores realmente disponibles se muestra al invocarse phpinfo() o dba_handlers().

Instalación

Usando el conmutador de configuración --enable-dba=shared, es posible construir un módule susceptible a ser cargado dinámicamente para habilitar PHP con soporte básico de bases de datos tipo dbm. También es necesario añadir soporte para al menos uno de los siguientes gestores especificando el valor de configuración --with-XXXX en su línea 'configure' de PHP.

Aviso

Después de configurar y compilar PHP es necesario ejecutar la siguiente prueba desde la línea de comandos: php run-tests.php ext/dba. Ésta muestra si su combinación de gestores funciona. Los más problemáticos son dbm y ndbm, que ocasionan conflictos con varias instalaciones. La razón de esto es que en muchos sistemas aquellas bibliotecas son parte de más de una biblioteca externa. La prueba de configuración solo le previene de configurar gestores sencillos que operen incorrectamente, pero no de las combinaciones.

Tabla 2. Gestores DBA soportados

GestorConmutador de Configuración
dbm Para habilitar el soporte dbm agregue --with-dbm[=DIR].

Nota: dbm es usualmente una envoltura que con frecuencia resulta en fallos. Esto quiere decir que únicamente debería usar dbm si está seguro de que funciona y realmente necesita este formato.

ndbm Para habilitar soporte para ndbm agregue --with-ndbm[=DIR].

Nota: ndbm es usualmente una envoltura que con frecuencia resulta en fallos. Esto quiere decir que únicamente debería usar ndbm si está seguro de que funciona y realmente necesita este formato.

gdbm Para habilitar el soporte para gdbm agregue --with-gdbm[=DIR].
db2 Para habilitar el soporte para db2 agregue --with-db2[=DIR].

Nota: db2 genera un conflicto con db3 y db4.

db3 Para habilitar el soporte para db3 agregue --with-db3[=DIR].

Nota: db3 genera un conflicto con db2 y db4.

db4 Para habilitar el soporte para db4 agregue --with-db4[=DIR].

Nota: db4 genera un conflicto con db2 y db3.

Nota: Esta opción fue agregada en PHP 4.3.2. En versiones anteriores de PHP, es necesario usar --with-db3=DIR, en donde DIR es la ruta hacia la biblioteca db4. No es posible usar versiones de db desde 4.1 con versiones de PHP anteriores a 4.3.0. Asimismo, las bibliotecas db con versiones entre 4.1 a 4.1.24 no pueden ser usadas en ninguna versión de PHP.

cdb Para habilitar el soporte para cdb agregue --with-cdb[=DIR].

Nota: Desde PHP 4.3.0 es posible omitir DIR para usar la biblioceta cdb incorporada, acción que agrega el gestor cdb_make para permitir la creación de archivos cdb y permite el acceso a archivos cdb en la red usando secuencias de PHP.

flatfile Para habilitar el soporte para archivos planos (flatfile) agregue --with-flatfile.

Nota: Este gestor fue agregado en PHP 4.3.0 para ofrecer compatibilidad con la extensión obsoleta dbm. Use este gestor únicamente cuando no pueda instalar una de las bibliotecas requeridas por los otros gestores y no pueda usar el gestor cdb incorporado.

inifile Para habilitar el soporte para inifile agregue --with-inifile.

Nota: Este gestor fue agregado en PHP 5.0.0 y le permite leer y definir archivos tipo .ini de microsoft (como el archivo php.ini).

qdbm Para habilitar el soporte para qdbm agregue --with-qdbm[=DIR].

Nota: qdbm genera un conflicto con dbm y gdbm.

Nota: Este gestor fue agregado en PHP 5.0.0. La biblioteca qdbm puede obtenerse desde http://qdbm.sourceforge.net.

Nota: Hasta PHP 4.3.0 es posible agregar tanto db2 como db3 pero solo uno de ellos puede ser usado internamente. Esto quiere decir que no es posible tener ambos formatos de archivo. A partir de PHP 5.0.0 existe un chequeo de configuración para evitar tales errores de configuración.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Las funciones dba_open() y dba_popen() devuelven un gestor al archivo de base de datos a acceder especificado, el cual es usado por todas las otras llamadas a funciones dba.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Ejemplos

Ejemplo 1. Ejemplo de DBA

<?php

$id
= dba_open("/tmp/prueba.db", "n", "db2");

if (!
$id) {
   echo
"dba_open ha fallado\n";
   exit;
}

dba_replace("clave", "Este es un ejemplo!", $id);

if (
dba_exists("clave", $id)) {
   echo
dba_fetch("clave", $id);
  
dba_delete("clave", $id);
}

dba_close($id);
?>

DBA es seguro con material binario y no tiene límites arbitrarios. Sin embargo, hereda todos los límites establecidos por la implementación de la base de datos interna.

Todas las bases de datos basadas en archivo deben ofrecer una forma de establecer el modo de archivo de una base de datos recién creada, si es posible. Un modo de archivo es pasado por lo general como el cuarto argumento a dba_open() o dba_popen().

Es posible acceder a todas las entradas de una base de datos en una forma lineal usando las funciones dba_firstkey() y dba_nextkey(). No debe modificar la base de datos mientras la recorre.

Ejemplo 2. Recorrido de una base de datos

<?php

// ...abrir base de datos...

$clave = dba_firstkey($id);

while (
$clave != false) {
   if (
true) {  // recordar la clave para realizar alguna accion mas adelante
      
$manejar_despues[] = $clave;
   }
  
$clave = dba_nextkey($id);
}

foreach (
$manejar_despues as $val) {
  
dba_delete($val, $id);
}

?>

Tabla de contenidos
dba_close -- Cerrar una base de datos DBA
dba_delete -- Elimina una entrada DBA especificada por clave
dba_exists -- Verificar si la clave existe
dba_fetch -- Recuperar datos especificados por clave
dba_firstkey -- Recuperar la primera clave
dba_handlers -- Listar todos los gestores disponibles
dba_insert -- Insertar entrada
dba_key_split --  Separa una clave en representación de cadena en representación de matriz
dba_list -- Listar todos los archivos de base de datos abiertos
dba_nextkey -- Recuperar la siguiente clave
dba_open -- Abrir una base de datos
dba_optimize -- Optimizar base de datos
dba_popen -- Abrir una base de datos de forma persistente
dba_replace -- Reemplazar o insertar una entrada
dba_sync -- Sincronizar base de datos


add a note add a note User Contributed Notes
Funciones de la Capa de Abstracción de Bases de Datos (tipo-dbm)
jason
21-Dec-2004 07:33
Don't make the dumb mistake I did, if you copy the first example at the top and modify it for test, the dba_open specifies "n" which will truncate the database that you are pointing to. Make sure you change it to "r" if you just want to read from an existing dbm file.
kevinphpdotnet at stormtide dot ca
17-Mar-2004 11:10
When using db4 on redhat 7.3 you may get signal 11s on the apache child processes. The installation test scripts will report that db4 is working correctly as the cli will not sig 11 out. The solution is to check to see if mod_rewrite is installed with apache, if it is either dereference it from libdb.so.3 or build apache without mod rewrite. Once this is done you will no longer have your child processes dying out and db4 will work. If you do not get a sig 11 after dba_open just ignore this comment.
djm at web dot us dot uu dot net
17-Oct-1999 03:28
With db2, you need to call dba_sync() to get the data written to disk; the examples are missing this.  db2 uses
the BTREE file format, not the more common HASH.
BTREE is faster, though, in my tests, so it's a good
choice.

Citas célebres

La mayoría de los seres humanos son como la piedra de imán, tienen un lado que repele y otro que atrae.

Voltaire
Filósofo y escritor francés
(1694-1778)
Citas en tu mail
©Contenidos Gratis

Ilusiones Opticas
ilusion_optica_021.jpg
Contenidos Web

Chiste de... Varios
Dejar el tabaco no es tan fácil

- He leído tantos libros sobre el vicio de los cigarrillos, que he decidido dejarlos.

- ¿Los cigarrillos?

- No, los libros
Chistes en tu mail
©ContenidosGratis

Humor Gráfico
humor_grafico_005.jpg
Contenidos Web

Inicio | Acción | Estrategia | Palabras | Puzzles | Solitarios | Foro Trucos
Cake ManiaCake Mania
Jugadores: 6835
Categoría del juego: Acción
Objetivo del juego: Ayuda a Jill a recuperar la pastelería de su abuela llevando su propia pastelería; consigue clientes y gana dinero.
Rainbow WebRainbow Web
Jugadores: 2199
Categoría del juego: Puzzles
Objetivo del juego: Rompe un pegajoso hechizo y salva un reino de fantasía en Rainbow Web. Tendrás toneladas de diversión mientras juegas a este mágico desafío para la mente.
Mahjongg FortunaMahjongg Fortuna
Jugadores: 12462
Categoría del juego: Solitarios
Objetivo del juego: Velocidad y habilidad mental son las armas más importantes en esta versión de un antiguo juego asiático. Despeja el tablero lo antes posible haciendo clic en las fichas iguales y gánate la fama eterna de la puntuación más alta.
Chainz 2Chainz 2
Jugadores: 6955
Categoría del juego: Puzzles
Objetivo del juego: Entra en el mundo de las combinaciones con Chainz 2: Relinked, emocionante secuela del exitazo del año pasado, Chainz. Gira eslabones y crea combinaciones de 3 ó más.
DeliciousDelicious
Jugadores: 4405
Categoría del juego: Acción
Objetivo del juego: ¿Eres un as de la multitarea? ¿Quieres que tus clientes estén contentos? ¡Pues Delicious es tu juego! Sacia el apetito de los clientes y tenlos contentos; ¡no te arriesgues!
BookwormBookworm
Jugadores: 4568
Categoría del juego: Palabras
Objetivo del juego: Junta las letras para formar palabras. ¡Las palabras más largas valen más puntos!
ZumaZuma
Jugadores: 4976
Categoría del juego: Acción
Objetivo del juego: Controla el ídolo de la rana de piedra de los antiguos Zuma en este intrigante enigma de acción. ¡Dispara bolas para formar conjuntos de tres, pero si dejas que lleguen a la calavera dorada morirás!
Jewel of AtlantisJewel of Atlantis
Jugadores: 3798
Categoría del juego: Puzzles
Objetivo del juego: Descubre la ciudad hundida de la Atlántida y busca valiosos tesoros. Viaja más allá de las profundidades del mar y vive trepidantes aventuras en Jewel of Atlantis.
Jewel QuestJewel Quest
Jugadores: 3727
Categoría del juego: Puzzles
Objetivo del juego: Convierte la arena de la antigua selva en oro tan rápido como puedas juntando grupos de 3 elementos. ¡Los grupos más grandes valen más puntos!
Bejeweled 2Bejeweled 2
Jugadores: 3659
Categoría del juego: Puzzles
Objetivo del juego: Con cuatro modos de juego únicos y fascinantes, nuevas piezas de juego explosivas e imponentes fondos planetarios, Bejeweled 2 es mucho más adictivo que nunca.
Contenidos gratis en tu webSiguiente >>

Fotos divertidas
fotos_increibles_0295.jpg
Contenidos Web
microrobots avion deportes riesgo recetas cocina canaria juegos online gratis moto motociclismo horoscopos naranjas valencianas surf canarias montañismo ciudades turismo postales gratis library Horoscopos Diarios Windsurf Canarias
fregadero microondas placa electrica bañopreparar camper pantalla plananevera compresor electricacamper fiat ducato camper baño quimicomampara enrollable bañocamper aire climatizadofurgoneta surf windsurffurgoneta surf windsurftelevisor furgonetas camperfurgonetas camper cama

Sudoku del día
Nivel de dificultad: Fácil



Cómo jugar:
El juego consiste en colocar los números del 1 al nueve de tal forma que no se repita el mismo número en la columna, fila y caja (bloques 3x3 enmarcados).

©Contenidos Gratis | Sudoku en tu mail

Warning: array_rand(): First argument has to be an array in /var/www/html/contenidos/efemerides.php on line 14
Sucedió el...

31 de agosto de

Efemérides en tu mail
©Contenidos Gratis
windsurf canarias youtube porno canarias baleares valencia madrid