mirror of
https://github.com/php/doc-es.git
synced 2026-03-24 07:22:16 +01:00
305 lines
11 KiB
XML
305 lines
11 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: b5fce74a6c0760daccc79063279e102873be6d77 Maintainer: PhilDaiguille Status: ready -->
|
|
<!-- Reviewed: no Maintainer: PhilDaiguille -->
|
|
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.dba-open">
|
|
<refnamediv>
|
|
<refname>dba_open</refname>
|
|
<refpurpose>Abre una base de datos DBA</refpurpose>
|
|
</refnamediv>
|
|
<refsect1 role="description">
|
|
&reftitle.description;
|
|
<methodsynopsis>
|
|
<type class="union"><type>Dba\Connection</type><type>false</type></type><methodname>dba_open</methodname>
|
|
<methodparam><type>string</type><parameter>path</parameter></methodparam>
|
|
<methodparam><type>string</type><parameter>mode</parameter></methodparam>
|
|
<methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>handler</parameter><initializer>&null;</initializer></methodparam>
|
|
<methodparam choice="opt"><type>int</type><parameter>permission</parameter><initializer>0644</initializer></methodparam>
|
|
<methodparam choice="opt"><type>int</type><parameter>map_size</parameter><initializer>0</initializer></methodparam>
|
|
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>flags</parameter><initializer>&null;</initializer></methodparam>
|
|
</methodsynopsis>
|
|
<simpara>
|
|
<function>dba_open</function> establece una conexión a
|
|
la base identificada por <parameter>path</parameter> con el
|
|
modo <parameter>mode</parameter> y el identificador
|
|
<parameter>handler</parameter>.
|
|
</simpara>
|
|
</refsect1>
|
|
<refsect1 role="parameters">
|
|
&reftitle.parameters;
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><parameter>path</parameter></term>
|
|
<listitem>
|
|
<simpara>
|
|
Ruta en el sistema de archivos.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>mode</parameter></term>
|
|
<listitem>
|
|
<simpara>
|
|
Puede ser <literal>r</literal> para solo lectura, <literal>w</literal> para
|
|
lectura/escritura, <literal>c</literal> para lectura/escritura y creación si la base no existe,
|
|
y <literal>n</literal> para creación, sobrescritura y acceso en lectura/escritura.
|
|
La base de datos se crea en modo BTree; los otros modos (como Hash o Queue) no son soportados.
|
|
</simpara>
|
|
<simpara>
|
|
Además, se puede elegir el método de bloqueo de la base con el
|
|
carácter siguiente. Utilice <literal>l</literal> para bloquear la base con un
|
|
fichero <filename>.lck</filename>, o <literal>d</literal> para bloquear
|
|
la base misma. Es importante que las aplicaciones utilicen estas
|
|
opciones de manera coherente.
|
|
</simpara>
|
|
<simpara>
|
|
Si se desea probar la posibilidad de acceso sin esperar la disponibilidad del bloqueo,
|
|
se puede añadir la letra <literal>t</literal> como tercer carácter. Cuando se está absolutamente seguro
|
|
de que la base no requiere bloqueo, se puede utilizar el guión <literal>-</literal>
|
|
en lugar de <literal>l</literal> o <literal>d</literal>.
|
|
Cuando no se utiliza ni <literal>d</literal>, ni <literal>l</literal> ni
|
|
<literal>-</literal>, dba bloqueará en modo <literal>d</literal>.
|
|
</simpara>
|
|
<note>
|
|
<para>
|
|
Solo puede haber un tipo de escritura en la base. Cuando se utiliza dba en un servidor web,
|
|
y varias peticiones HTTP realizan escrituras, estas solo pueden realizarse una tras otra. De igual
|
|
manera, la lectura durante la escritura no es posible. La extensión dba utiliza un bloqueo para evitar
|
|
estos problemas. A continuación se muestra la tabla de bloqueo:
|
|
<table>
|
|
<title>Bloqueo DBA</title>
|
|
<tgroup cols="9">
|
|
<thead>
|
|
<row>
|
|
<entry>ya abierta</entry>
|
|
<entry><parameter>mode</parameter> = "rl"</entry>
|
|
<entry><parameter>mode</parameter> = "rlt"</entry>
|
|
<entry><parameter>mode</parameter> = "wl"</entry>
|
|
<entry><parameter>mode</parameter> = "wlt"</entry>
|
|
<entry><parameter>mode</parameter> = "rd"</entry>
|
|
<entry><parameter>mode</parameter> = "rdt"</entry>
|
|
<entry><parameter>mode</parameter> = "wd"</entry>
|
|
<entry><parameter>mode</parameter> = "wdt"</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>no abierta</entry>
|
|
<entry>ok</entry>
|
|
<entry>ok</entry>
|
|
<entry>ok</entry>
|
|
<entry>ok</entry>
|
|
<entry>ok</entry>
|
|
<entry>ok</entry>
|
|
<entry>ok</entry>
|
|
<entry>ok</entry>
|
|
</row>
|
|
<row>
|
|
<entry><parameter>mode</parameter> = "rl"</entry>
|
|
<entry>ok</entry>
|
|
<entry>ok</entry>
|
|
<entry>esperando</entry>
|
|
<entry>&false;</entry>
|
|
<entry>ilegal</entry>
|
|
<entry>ilegal</entry>
|
|
<entry>ilegal</entry>
|
|
<entry>ilegal</entry>
|
|
</row>
|
|
<row>
|
|
<entry><parameter>mode</parameter> = "wl"</entry>
|
|
<entry>esperando</entry>
|
|
<entry>&false;</entry>
|
|
<entry>esperando</entry>
|
|
<entry>&false;</entry>
|
|
<entry>ilegal</entry>
|
|
<entry>ilegal</entry>
|
|
<entry>ilegal</entry>
|
|
<entry>ilegal</entry>
|
|
</row>
|
|
<row>
|
|
<entry><parameter>mode</parameter> = "rd"</entry>
|
|
<entry>ilegal</entry>
|
|
<entry>ilegal</entry>
|
|
<entry>ilegal</entry>
|
|
<entry>ilegal</entry>
|
|
<entry>ok</entry>
|
|
<entry>ok</entry>
|
|
<entry>esperando</entry>
|
|
<entry>&false;</entry>
|
|
</row>
|
|
<row>
|
|
<entry><parameter>mode</parameter> = "wd"</entry>
|
|
<entry>ilegal</entry>
|
|
<entry>ilegal</entry>
|
|
<entry>ilegal</entry>
|
|
<entry>ilegal</entry>
|
|
<entry>esperando</entry>
|
|
<entry>&false;</entry>
|
|
<entry>esperando</entry>
|
|
<entry>&false;</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<simplelist>
|
|
<member>ok: La segunda llamada tiene éxito.</member>
|
|
<member>esperando: La segunda llamada espera a que <function>dba_close</function>
|
|
sea llamada por el primer script.</member>
|
|
<member>false: La segunda llamada devuelve &false;.</member>
|
|
<member>ilegal: No se deben mezclar las opciones
|
|
<literal>"l"</literal> y <literal>"d"</literal> para el parámetro
|
|
<parameter>mode</parameter>.</member>
|
|
</simplelist>
|
|
</para>
|
|
</note>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>handler</parameter></term>
|
|
<listitem>
|
|
<simpara>
|
|
El nombre del <link linkend="dba.requirements">gestor</link>
|
|
que debe ser utilizado para acceder a <parameter>path</parameter>.
|
|
Se pasa a todos los parámetros opcionales dados a
|
|
<function>dba_open</function> y puede actuar en su nombre.
|
|
Si el parámetro <parameter>handler</parameter> es &null;,
|
|
entonces se invoca el gestor por defecto.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>permission</parameter></term>
|
|
<listitem>
|
|
<simpara>
|
|
Parámetro opcional de tipo &integer; que se pasa al controlador. Tiene el mismo significado que
|
|
el parámetro <parameter>permissions</parameter> de la función <function>chmod</function>,
|
|
y tiene un valor por omisión de <literal>0644</literal>.
|
|
</simpara>
|
|
<simpara>
|
|
Los controladores <literal>db1</literal>, <literal>db2</literal>,
|
|
<literal>db3</literal>, <literal>db4</literal>, <literal>dbm</literal>,
|
|
<literal>gdbm</literal>,
|
|
Los controladores <literal>ndbm</literal> y <literal>lmdb</literal> soportan el
|
|
parámetro <parameter>permission</parameter>.
|
|
</simpara>
|
|
<simpara>
|
|
El controlador <literal>lmdb</literal> soporta dos parámetros adicionales.
|
|
El primero permite definir el <literal>$filemode</literal>
|
|
(ver descripción anterior), y el segundo permite definir la
|
|
<literal>$mapsize</literal>, cuyo valor debería ser un múltiplo del tamaño de página del sistema operativo,
|
|
o cero para utilizar la mapsize por defecto.
|
|
El parámetro <literal>$mapsize</literal> es soportado a partir de
|
|
PHP 7.3.14 y 7.4.2, respectivamente.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>map_size</parameter></term>
|
|
<listitem>
|
|
<simpara>
|
|
Parámetro opcional de tipo &integer; que se pasa al controlador. Su valor debe ser un múltiplo del
|
|
tamaño de página del sistema operativo, o cero para utilizar el tamaño de mappage por defecto.
|
|
</simpara>
|
|
<simpara>
|
|
Solo el controlador <literal>lmdb</literal> acepta el parámetro <parameter>map_size</parameter>.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>flags</parameter></term>
|
|
<listitem>
|
|
<simpara>
|
|
Bandera a pasar a los controladores de base de datos. Si es &null;, se proporcionarán las banderas por defecto.
|
|
Actualmente, solo el controlador LMDB soporta las siguientes banderas:
|
|
<constant>DBA_LMDB_USE_SUB_DIR</constant> y
|
|
<constant>DBA_LMDB_NO_SUB_DIR</constant>.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</refsect1>
|
|
<refsect1 role="errors">
|
|
&reftitle.errors;
|
|
<simpara>
|
|
&false; es devuelto y se emite un error de nivel <constant>E_WARNING</constant> cuando
|
|
el parámetro <parameter>handler</parameter> es &null;, pero no hay ningún gestor por defecto disponible.
|
|
</simpara>
|
|
</refsect1>
|
|
<refsect1 role="returnvalues">
|
|
&reftitle.returnvalues;
|
|
<simpara>
|
|
Devuelve una instancia <classname>Dba\Connection</classname> en caso de éxito&return.falseforfailure;.
|
|
</simpara>
|
|
</refsect1>
|
|
|
|
<refsect1 role="changelog">
|
|
&reftitle.changelog;
|
|
<informaltable>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>&Version;</entry>
|
|
<entry>&Description;</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>8.4.0</entry>
|
|
<entry>
|
|
Ahora devuelve una instancia de <classname>Dba\Connection</classname>;
|
|
anteriormente se devolvía un &resource;.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>8.2.0</entry>
|
|
<entry>
|
|
Se añade el parámetro <parameter>flags</parameter>.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>8.2.0</entry>
|
|
<entry>
|
|
El parámetro <parameter>handler</parameter> ahora es nullable.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>7.3.14, 7.4.2</entry>
|
|
<entry>
|
|
El controlador <literal>lmdb</literal> ahora soporta un parámetro
|
|
adicional <parameter>map_size</parameter>.
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</refsect1>
|
|
|
|
<refsect1 role="seealso">
|
|
&reftitle.seealso;
|
|
<simplelist>
|
|
<member><function>dba_popen</function></member>
|
|
<member><function>dba_close</function></member>
|
|
</simplelist>
|
|
</refsect1>
|
|
</refentry>
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|