mirror of
https://github.com/php/doc-ru.git
synced 2025-08-20 23:31:15 +00:00

git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@340439 c90b9560-bf6c-de11-be94-00142212c4b1
233 lines
9.8 KiB
XML
233 lines
9.8 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: 8b5940cadeb4f1c8492f4a7f70743a2be807cf39 Maintainer: rjhdby Status: ready -->
|
||
<!-- Reviewed: no -->
|
||
<!-- $Revision$ -->
|
||
<refentry xml:id="function.dba-open" xmlns="http://docbook.org/ns/docbook">
|
||
<refnamediv>
|
||
<refname>dba_open</refname>
|
||
<refpurpose>Открывает базу данных</refpurpose>
|
||
</refnamediv>
|
||
<refsect1 role="description">
|
||
&reftitle.description;
|
||
<methodsynopsis>
|
||
<type>resource</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>string</type><parameter>handler</parameter></methodparam>
|
||
<methodparam choice="opt"><type>mixed</type><parameter>...</parameter></methodparam>
|
||
</methodsynopsis>
|
||
<para>
|
||
<function>dba_open</function> устанавливает экземпляр базы данных по пути
|
||
<parameter>path</parameter> в режиме <parameter>mode</parameter> используя
|
||
обработчик <parameter>handler</parameter>.
|
||
</para>
|
||
</refsect1>
|
||
<refsect1 role="parameters">
|
||
&reftitle.parameters;
|
||
<para>
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term><parameter>path</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Путь до файлов базы данных.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>mode</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
<literal>r</literal> для режима чтения, <literal>w</literal> для
|
||
режима чтения/записи с уже существующей базой данных. <literal>c</literal>
|
||
для режима чтения/записи и создания базы данных, если она еще не была создана,
|
||
и <literal>n</literal> для создания, обрезания и доступа для чтения/записи.
|
||
База данных создается с архитектурой BTree, другие архитектуры (вроде Hash или Queue)
|
||
не поддерживаются.
|
||
</para>
|
||
<para>
|
||
Дополнительно, с помощью следующего символа, вы можете задать режим блокировки
|
||
базы данных. <literal>l</literal> для блокировки базы данных с помощью файла
|
||
<filename>.lck</filename>, или <literal>d</literal> для самостоятельной блокировки
|
||
средствами самой базу. Важно, чтобы все ваши приложения делали это согласованно.
|
||
</para>
|
||
<para>
|
||
Если вы хотите просто проверить доступ и не хотите ждать освобождения блокировки,
|
||
вы можете добавить третий символ <literal>t</literal>. Если вы абсолютно уверены,
|
||
что вам не нужно использовать блокировку базы данных, вы можете использовать
|
||
символ <literal>-</literal> вместо <literal>l</literal> или <literal>d</literal>.
|
||
Если ни один из символов: <literal>d</literal>, <literal>l</literal> или
|
||
<literal>-</literal> не задан, база данных будет использовать режим <literal>d</literal>.
|
||
</para>
|
||
<note>
|
||
<para>
|
||
В один момент времени может быть полько один процесс, пишущий в базу данных.
|
||
Когда вы используете dba на веб-сервере, и более чем один запрос требует
|
||
записи в базу данных, они могут это делать только строго по очереди.
|
||
Также, в момент чтения, запись не доступна. Расширение dba использует
|
||
блокировки для предотвращения нежелательного поведения.
|
||
Изучите следующую таблицу:
|
||
<table>
|
||
<title>Блокировки DBA</title>
|
||
<tgroup cols="9">
|
||
<thead>
|
||
<row>
|
||
<entry>уже открыта</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>не открыта</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>wait</entry>
|
||
<entry>false</entry>
|
||
<entry>illegal</entry>
|
||
<entry>illegal</entry>
|
||
<entry>illegal</entry>
|
||
<entry>illegal</entry>
|
||
</row>
|
||
<row>
|
||
<entry><parameter>mode</parameter> = "wl"</entry>
|
||
<entry>wait</entry>
|
||
<entry>false</entry>
|
||
<entry>wait</entry>
|
||
<entry>false</entry>
|
||
<entry>illegal</entry>
|
||
<entry>illegal</entry>
|
||
<entry>illegal</entry>
|
||
<entry>illegal</entry>
|
||
</row>
|
||
<row>
|
||
<entry><parameter>mode</parameter> = "rd"</entry>
|
||
<entry>illegal</entry>
|
||
<entry>illegal</entry>
|
||
<entry>illegal</entry>
|
||
<entry>illegal</entry>
|
||
<entry>ok</entry>
|
||
<entry>ok</entry>
|
||
<entry>wait</entry>
|
||
<entry>false</entry>
|
||
</row>
|
||
<row>
|
||
<entry><parameter>mode</parameter> = "wd"</entry>
|
||
<entry>illegal</entry>
|
||
<entry>illegal</entry>
|
||
<entry>illegal</entry>
|
||
<entry>illegal</entry>
|
||
<entry>wait</entry>
|
||
<entry>false</entry>
|
||
<entry>wait</entry>
|
||
<entry>false</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
<simplelist>
|
||
<member>ok: второй вызов будет успешным.</member>
|
||
<member>wait: второй вызов будет ждать, пока первый не вызовет
|
||
<function>dba_close</function>.</member>
|
||
<member>false: второй вызов вернет &false;.</member>
|
||
<member>illegal: вы не можете смешивать модификаторы <literal>"l"</literal> и <literal>"d"</literal> в параметре <parameter>mode</parameter>.</member>
|
||
</simplelist>
|
||
</para>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>handler</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Имя <link linkend="dba.requirements">обработчика</link>, который будет
|
||
использоваться для доступа по пути <parameter>path</parameter>. Ему передаются
|
||
все необязательные параметры, заданные в <function>dba_open</function>.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</para>
|
||
</refsect1>
|
||
<refsect1 role="returnvalues">
|
||
&reftitle.returnvalues;
|
||
<para>
|
||
Возвращает обработчик в случае успеха, &return.falseforfailure;.
|
||
</para>
|
||
</refsect1>
|
||
<refsect1 role="changelog">
|
||
&reftitle.changelog;
|
||
<para>
|
||
<informaltable>
|
||
<tgroup cols="2">
|
||
<thead>
|
||
<row>
|
||
<entry>&Version;</entry>
|
||
<entry>&Description;</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry>4.3.0</entry>
|
||
<entry>
|
||
Стало возможным открывать файлы баз данных через сетевое соединение.
|
||
Однако в случае, когда используется соединение через сокеты (такие как http или ftp),
|
||
блокировка будет устанавливаться на соединение, а не на сам ресурс.
|
||
Это важно знать, так как в таких случаях блокировка на ресурсе просто игнорируется
|
||
и необходимо будет искать другие решения.
|
||
</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</informaltable>
|
||
</para>
|
||
</refsect1>
|
||
<refsect1 role="seealso">
|
||
&reftitle.seealso;
|
||
<para>
|
||
<simplelist>
|
||
<member><function>dba_popen</function></member>
|
||
<member><function>dba_close</function></member>
|
||
</simplelist>
|
||
</para>
|
||
</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
|
||
-->
|