php-doc-en/reference/ibase/functions/ibase-trans.xml
2013-03-08 15:26:13 +00:00

112 lines
3.6 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.ibase-trans">
<refnamediv>
<refname>ibase_trans</refname>
<refpurpose>Begin a transaction</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>resource</type><methodname>ibase_trans</methodname>
<methodparam choice="opt"><type>int</type><parameter>trans_args</parameter></methodparam>
<methodparam choice="opt"><type>resource</type><parameter>link_identifier</parameter></methodparam>
</methodsynopsis>
<methodsynopsis>
<type>resource</type><methodname>ibase_trans</methodname>
<methodparam choice="opt"><type>resource</type><parameter>link_identifier</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>trans_args</parameter></methodparam>
</methodsynopsis>
<para>
Begins a transaction.
</para>
<note>
<para>
The first call to <function>ibase_trans</function> will not return the default transaction
of a connection. All transactions started by <function>ibase_trans</function>
will be rolled back at the end of the script if they were not committed or
rolled back by either <function>ibase_commit</function> or
<function>ibase_rollback</function>.
</para>
</note>
<note>
<para>
This function will accept multiple <parameter>trans_args</parameter>
and <parameter>link_identifier</parameter> arguments. This allows transactions
over multiple database connections, which are committed using a 2-phase commit
algorithm. This means you can rely on the updates to either succeed in every
database, or fail in every database. It does NOT mean you can use tables from
different databases in the same query!
</para>
<para>
If you use transactions over multiple databases, you will have to specify both
the <parameter>link_id</parameter> and <parameter>transaction_id</parameter>
in calls to <function>ibase_query</function> and <function>ibase_prepare</function>.
</para>
</note>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>trans_args</parameter></term>
<listitem>
<para>
<parameter>trans_args</parameter> can be a combination of
<constant>IBASE_READ</constant>,
<constant>IBASE_WRITE</constant>,
<constant>IBASE_COMMITTED</constant>,
<constant>IBASE_CONSISTENCY</constant>,
<constant>IBASE_CONCURRENCY</constant>,
<constant>IBASE_REC_VERSION</constant>,
<constant>IBASE_REC_NO_VERSION</constant>,
<constant>IBASE_WAIT</constant> and
<constant>IBASE_NOWAIT</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>link_identifier</parameter></term>
<listitem>
<para>
An InterBase link identifier. If omitted, the last opened link is
assumed.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Returns a transaction handle, or &false; on error.
</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
-->