1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-26 08:42:13 +01:00
Files
archived-doc-ru/reference/pdo_pgsql/PDO/pgsqlLOBCreate.xml
Sergey Panteleev daef8df962 Обнуление тега Reviewed (#364)
[skip-lint]
[skip-spellcheck]
2021-11-16 13:03:53 +03:00

120 lines
4.4 KiB
XML
Raw 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: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<!-- Generated by xml_proto.php v2.3. Found in /scripts directory of phpdoc. -->
<refentry xml:id="pdo.pgsqllobcreate" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>PDO::pgsqlLOBCreate</refname>
<refpurpose>Создать новый большой объект (LOB)</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type>string</type><methodname>PDO::pgsqlLOBCreate</methodname>
<void/>
</methodsynopsis>
<para>
Функция <function>PDO::pgsqlLOBCreate</function> создаёт большой объект (LOB) и
возвращает его OID. Вы можете открыть поток для чтения или изменения объекта,
используя функцию <function>PDO::pgsqlLOBOpen</function>. OID можно
сохранить в столбце типа OID и использовать как ссылку на LOB не
вызывая неконтролируемого увеличения размера строк.
LOB будет жить в базе данных пока не будет удалён с помощью
функции <function>PDO::pgsqlLOBUnlink</function>.
</para>
<para>
Большие объекты могут быть до 2ГБ размером, но они очень громоздкие.
Вы должны убедиться, что выполнили <function>PDO::pgsqlLOBUnlink</function>
до того, как удалите последнюю строку в вашей БД, которая ссылается на его OID.
К тому же, большие объекты не имеют контроля доступа. В качестве
альтернативы попробуйте использовать тип данных bytea. Последние
версии PostgreSQL разрешают столбцы типа bytea до 1ГБ размером и
прозрачно управляют табличным пространством для оптимизации длины строк.
</para>
<note>
<simpara>
Эту функцию необходимо выполнять в транзакции.
</simpara>
</note>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<function>PDO::pgsqlLOBCreate</function> не принимает параметров.
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Возвращает OID созданного объекта или &false;.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример использования <function>PDO::pgsqlLOBCreate</function></title>
<para>
В этом примере создаётся LOB и наполняется данными из файла.
После этого его OID сохраняется в таблице.
</para>
<programlisting role="php">
<![CDATA[
<?php
$db = new PDO('pgsql:dbname=test host=localhost', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$oid = $db->pgsqlLOBCreate();
$stream = $db->pgsqlLOBOpen($oid, 'w');
$local = fopen($filename, 'rb');
stream_copy_to_stream($local, $stream);
$local = null;
$stream = null;
$stmt = $db->prepare("INSERT INTO BLOBS (ident, oid) VALUES (?, ?)");
$stmt->execute(array($some_id, $oid));
$db->commit();
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>PDO::pgsqlLOBOpen</function></member>
<member><function>PDO::pgsqlLOBUnlink</function></member>
<member><function>pg_lo_create</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
-->