1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-26 00:32:15 +01:00
Files
archived-doc-ru/reference/pgsql/functions/pg-pconnect.xml

179 lines
7.8 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 3b2503bdcbbffc9bd1381078ee06c298d4f8a49a Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.pg-pconnect" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>pg_pconnect</refname>
<refpurpose>Открывает постоянное соединение с сервером PostgreSQL</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>PgSql\Connection</type><type>false</type></type><methodname>pg_pconnect</methodname>
<methodparam><type>string</type><parameter>connection_string</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>flags</parameter><initializer>0</initializer></methodparam>
</methodsynopsis>
<para>
Функция <function>pg_pconnect</function> устанавливает соединение с базой данных
PostgreSQL и возвращает экземпляр класса <classname>PgSql\Connection</classname>, который требуется
другим функциям взаимодействия с СУБД PostgreSQL.
</para>
<para>
При повторном вызове функции <function>pg_pconnect</function> с теми же параметрами
в строке <parameter>connection_string</parameter> функция вернёт подключение,
которое уже установили, если только в параметр <parameter>flags</parameter>
не передали флаг <constant>PGSQL_CONNECT_FORCE_NEW</constant>.
</para>
<para>
Постоянные соединения включают в файле &php.ini; путём установки
в директиве <link linkend="ini.pgsql.allow-persistent">pgsql.allow_persistent</link>
значения по умолчанию — <literal>"On"</literal>.
Максимальное количество постоянных подключений определяют в файле &php.ini; через директиву
<link linkend="ini.pgsql.max-persistent">pgsql.max_persistent</link>.
Стандартное значение директивы равняется <literal>-1</literal>. Это значение снимает ограничения на количество подключений.
Общее количество подключений устанавливают в файле &php.ini; через директиву
<link linkend="ini.pgsql.max-links">pgsql.max_links</link>.
</para>
<para>
Функция <function>pg_close</function> не закрывает соединения, которые открыли функцией
<function>pg_pconnect</function>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>connection_string</parameter></term>
<listitem>
<para>
Параметр <parameter>connection_string</parameter> принимает пустую строку или настройки параметров через пробел.
При передаче пустой строки функция открывает постоянное соединение с параметрами по умолчанию.
Каждую настройку параметра передают в форме <literal>keyword = value</literal>. Пробелы вокруг
знака равенства необязательны. Пустые значения или значения
с пробелами записывают в одинарных кавычках: <literal>keyword = 'a value'</literal>.
Одинарные кавычки и обратные слеши внутри значения
экранируют обратным слешем: <literal>\'</literal> и <literal>\\</literal>.
</para>
<para>
Функция распознаёт следующие параметры:
<parameter>host</parameter>, <parameter>hostaddr</parameter>, <parameter>port</parameter>,
<parameter>dbname</parameter>, <parameter>user</parameter>,
<parameter>password</parameter>, <parameter>connect_timeout</parameter>,
<parameter>options</parameter>, <parameter>tty</parameter> (игнорируется), <parameter>sslmode</parameter>,
<parameter>requiressl</parameter> (устарел в пользу <parameter>sslmode</parameter>)
и <parameter>service</parameter>.
Поддержка параметров зависит от версии СУБД PostgreSQL.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>flags</parameter></term>
<listitem>
<para>
При передаче флага <constant>PGSQL_CONNECT_FORCE_NEW</constant> функция создаёт новое соединение,
даже если строка подключения <parameter>connection_string</parameter> идентична
строке подключения, которое уже установили.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Функция возвращает экземпляр класса <classname>PgSql\Connection</classname>,
если выполнилась успешно,&return.falseforfailure;.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.1.0</entry>
<entry>
Функция теперь возвращает экземпляр класса <classname>PgSql\Connection</classname>;
раньше возвращался ресурс (&resource;).
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример установки постоянного соединения функцией <function>pg_pconnect</function></title>
<programlisting role="php">
<![CDATA[
<?php
// Подключение к базе данных "mary"
$dbconn = pg_pconnect("dbname=mary");
// Подключение к БД "mary" на хосте "localhost" и порте "5432"
$dbconn2 = pg_pconnect("host=localhost port=5432 dbname=mary");
// Подключение к базе данных "mary" на хосте "sheep" с именем пользователя и паролем
$dbconn3 = pg_pconnect("host=sheep port=5432 dbname=mary user=lamb password=foo");
// Подключение к БД "test" на хосте "sheep" с именем пользователя и паролем
$conn_string = "host=sheep port=5432 dbname=test user=lamb password=bar";
$dbconn4 = pg_pconnect($conn_string);
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>pg_connect</function></member>
<member>
<link linkend="features.persistent-connections">
Постоянные соединения с базой данных</link>
</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
-->