<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->

<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.db2-last-insert-id">
 <refnamediv>
  <refname>db2_last_insert_id</refname>
  <refpurpose>Returns the auto generated ID of the last insert query that successfully 
  executed on this connection</refpurpose>
 </refnamediv>
 
 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis>
   <type>string</type><methodname>db2_last_insert_id</methodname>
   <methodparam><type>resource</type><parameter>resource</parameter></methodparam>      
  </methodsynopsis>
  <para>
   Returns the auto generated ID of the last insert query that successfully 
  executed on this connection.
  </para>
  <para>
   The result of this function is not affected by any of the following:
   <itemizedlist>
    <listitem>
     <para>
      A single row INSERT statement with a VALUES clause for a table without an identity column.
     </para>
    </listitem>
    <listitem>
     <para>
      A multiple row INSERT statement with a VALUES clause.
     </para>
    </listitem>
    <listitem>
     <para>
      An INSERT statement with a fullselect.
     </para>
    </listitem>
    <listitem>
     <para>
      A ROLLBACK TO SAVEPOINT statement.
     </para>
    </listitem>
   </itemizedlist>
  </para>   
 </refsect1>
 
 <refsect1 role="parameters">
  &reftitle.parameters;
  <para>
   <variablelist>
    <varlistentry>
     <term><parameter>resource</parameter></term>
     <listitem>
      <para>
       A valid connection resource as returned from <function>db2_connect</function> 
       or <function>db2_pconnect</function>. The value of this parameter cannot be a 
       statement resource or result set resource.
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>
 
 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   Returns the auto generated ID of last insert query that successfully 
  executed on this connection.
  </para>
 </refsect1>
 
 <refsect1 role="examples">
  &reftitle.examples;
  <para>
   <example xml:id="db2-last-insert-id.example.basic"><!-- {{{ -->
    <title>A <function>db2_last_insert_id</function> example</title>
    <para>
      The following example shows how to return the  
      auto generated ID of last insert query that successfully 
      executed on this connection.
    </para>
    <programlisting role="php">
<![CDATA[
<?php

$database = "SAMPLE";
$user = "db2inst1";
$password = "ibmdb2";

$conn = db2_connect($database, $user, $password);
if($conn) {
    $createTable = "CREATE TABLE lastInsertID 
      (id integer GENERATED BY DEFAULT AS IDENTITY, name varchar(20))";
    $insertTable = "INSERT INTO lastInsertID (name) VALUES ('Temp Name')";

    $stmt = @db2_exec($conn, $createTable);

    /* Checking for single row inserted. */
    $stmt = db2_exec($conn, $insertTable);
    $ret =  db2_last_insert_id($conn);
    if($ret) {
        echo "Last Insert ID is : " . $ret . "\n";
    } else {
        echo "No Last insert ID.\n";
    }
    
    db2_close($conn);
}
else {
    echo "Connection failed.";
}
?>
]]>
    </programlisting>
    &example.outputs;
    <screen>
<![CDATA[
Last Insert ID is : 1
]]>
    </screen>
   </example>
  </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
-->