php-doc-en/reference/ibase/functions/ibase-trans.xml
Daniel Egeberg 96c9d88bad Converted to utf-8
git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@297028 c90b9560-bf6c-de11-be94-00142212c4b1
2010-03-28 22:10:10 +00:00

113 lines
3.7 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 behaviour of this function has been changed in PHP 5.0.0. 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>
In PHP 5.0.0. and up, 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
-->