   #PHP Manual Function Reference deaggregate ocibindbyname

   PHP Manual
   Prev  Next
   ______________________________________________________________________

LXXIII. Oracle 8 functions

Introduction

   These functions allow you to access Oracle8 and Oracle7 databases. It
   uses the Oracle8 Call-Interface (OCI8)

   This extension is more flexible than the standard Oracle extension. It
   supports binding of global and local PHP variables to Oracle
   placeholders, has full LOB, FILE and ROWID support and allows you to
   use user-supplied define variables.

Requirements

   You will need the Oracle8 client libraries to use this extension.
   Windows users will need at least Oracle version 8.1 to use the
   php_oci8.dll dll.

   Before using this extension, make sure that you have set up your
   Oracle environment variables properly for the Oracle user, as well as
   your web daemon user. The variables you might need to set are as
   follows:

     * ORACLE_HOME
     * ORACLE_SID
     * LD_PRELOAD
     * LD_LIBRARY_PATH
     * NLS_LANG
     * ORA_NLS33

   After setting up the environment variables for your webserver user, be
   sure to also add the webserver user (nobody, www) to the oracle group.

     If your webserver doesn't start or crashes at startup: Check that
     Apache is linked with the pthread library:

# ldd /www/apache/bin/httpd
    libpthread.so.0 => /lib/libpthread.so.0 (0x4001c000)
    libm.so.6 => /lib/libm.so.6 (0x4002f000)
    libcrypt.so.1 => /lib/libcrypt.so.1 (0x4004c000)
    libdl.so.2 => /lib/libdl.so.2 (0x4007a000)
    libc.so.6 => /lib/libc.so.6 (0x4007e000)
    /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

     If the libpthread is not listed you have to reinstall Apache:

# cd /usr/src/apache_1.3.xx
# make clean
# LIBS=-lpthread ./config.status
# make
# make install

     Please note that on some systems like UnixWare it is libthread
     instead of libpthread. PHP and Apache have to be configured with
     EXTRA_LIBS=-lthread.

Installation

   You have to compile PHP with the option --with-oci8[=DIR], where DIR
   defaults to your environment variable ORACLE_HOME.

Runtime Configuration

   This extension has no configuration directives defined in php.ini.

Resource Types

Predefined Constants

   The constants below are defined by this extension, and will only be
   available when the extension has either been compiled into PHP or
   dynamically loaded at runtime.

   OCI_DEFAULT (integer)

   OCI_DESCRIBE_ONLY (integer)

   OCI_COMMIT_ON_SUCCESS (integer)

   OCI_EXACT_FETCH (integer)

   SQLT_BFILEE (integer)

   SQLT_CFILEE (integer)

   SQLT_CLOB (integer)

   SQLT_BLOB (integer)

   SQLT_RDD (integer)

   OCI_B_SQLT_NTY (integer)

   OCI_SYSDATE (integer)

   OCI_B_BFILE (integer)

   OCI_B_CFILEE (integer)

   OCI_B_CLOB (integer)

   OCI_B_BLOB (integer)

   OCI_B_ROWID (integer)

   OCI_B_CURSOR (integer)

   OCI_B_BIN (integer)

   OCI_FETCHSTATEMENT_BY_COLUMN (integer)

   OCI_FETCHSTATEMENT_BY_ROW (integer)

   OCI_ASSOC (integer)

   OCI_NUM (integer)

   OCI_BOTH (integer)

   OCI_RETURN_NULLS (integer)

   OCI_RETURN_LOBS (integer)

   OCI_DTYPE_FILE (integer)

   OCI_DTYPE_LOB (integer)

   OCI_DTYPE_ROWID (integer)

   OCI_D_FILE (integer)

   OCI_D_LOB (integer)

   OCI_D_ROWID (integer)

Examples

   Example 1. OCI Hints
   <?php
   // by sergo at bacup dot ru
   // Use option: OCI_DEFAULT for execute command to delay execution
   OCIExecute($stmt, OCI_DEFAULT);
   // for retrieve data use (after fetch):
   $result = OCIResult($stmt, $n);
   if (is_object($result)) $result = $result->load();
   // For INSERT or UPDATE statement use:
   $sql = "insert into table (field1, field2) values (field1 = 'value',
   field2 = empty_clob()) returning field2 into :field2";
   OCIParse($conn, $sql);
   $clob = OCINewDescriptor($conn, OCI_D_LOB);
   OCIBindByName($stmt, ":field2", &$clob, -1, OCI_B_CLOB);
   OCIExecute($stmt, OCI_DEFAULT);
   $clob->save("some text");
   OCICommit($conn);
   ?>

   You can easily access stored procedures in the same way as you would
   from the commands line.

   Example 2. Using Stored Procedures
   <?php
   // by webmaster at remoterealty dot com
   $sth = OCIParse($dbh, "begin sp_newaddress( :address_id, '$firstname',
   '$lastname', '$company', '$address1', '$address2', '$city', '$state',
   '$postalcode', '$country', :error_code );end;");
   // This calls stored procedure sp_newaddress, with :address_id being
   an
   // in/out variable and :error_code being an out variable.
   // Then you do the binding:
      OCIBindByName($sth, ":address_id", $addr_id, 10);
      OCIBindByName($sth, ":error_code", $errorcode, 10);
      OCIExecute($sth);
   ?>

   Table of Contents
   ocibindbyname --  Bind a PHP variable to an Oracle Placeholder
   ocicancel -- Cancel reading from cursor
   ocicloselob -- Closes lob descriptor
   ocicollappend -- Append an object to the collection
   ocicollassign -- Assign a collection from another existing collection
   ocicollassignelem -- Assign element val to collection at index ndx
   ocicollgetelem -- Retrieve the value at collection index ndx
   ocicollmax --  Return the max value of a collection. For a varray this
          is the maximum length of the array

   ocicollsize -- Return the size of a collection
   ocicolltrim -- Trim num elements from the end of a collection
   ocicolumnisnull -- Test whether a result column is NULL
   ocicolumnname -- Returns the name of a column
   ocicolumnprecision -- Tell the precision of a column
   ocicolumnscale -- Tell the scale of a column
   ocicolumnsize -- Return result column size
   ocicolumntype -- Returns the data type of a column
   ocicolumntyperaw -- Tell the raw oracle data type of a column
   ocicommit -- Commits outstanding transactions
   ocidefinebyname --  Use a PHP variable for the define-step during a
          SELECT

   ocierror -- Return the last error of stmt|conn|global
   ociexecute -- Execute a statement
   ocifetch -- Fetches the next row into result-buffer
   ocifetchinto -- Fetches the next row into an array
   ocifetchstatement -- Fetch all rows of result data into an array
   ocifreecollection -- Deletes collection object
   ocifreecursor --  Free all resources associated with a cursor
   ocifreedesc -- Deletes a large object descriptor
   ocifreestatement --  Free all resources associated with a statement
   ociinternaldebug --  Enables or disables internal debug output
   ociloadlob -- Loads a large object
   ocilogoff -- Disconnects from Oracle server
   ocilogon -- Establishes a connection to Oracle
   ocinewcollection -- Initialize a new collection
   ocinewcursor --  Return a new cursor (Statement-Handle)
   ocinewdescriptor --  Initialize a new empty LOB or FILE descriptor
   ocinlogon -- Establishes a new connection to Oracle
   ocinumcols --  Return the number of result columns in a statement
   ociparse -- Parse a query and return an Oracle statement
   ociplogon --  Connect to an Oracle database using a persistent
          connection

   ociresult -- Returns column value for fetched row
   ocirollback -- Rolls back outstanding transactions
   ocirowcount -- Gets the number of affected rows
   ocisavelob -- Saves a large object
   ocisavelobfile -- Saves a large object file
   ociserverversion -- Return a string containing server version
          information

   ocisetprefetch -- Sets number of rows to be prefetched
   ocistatementtype -- Return the type of an OCI statement
   ociwritelobtofile -- Saves a large object file
   ociwritetemporarylob -- Writes temporary blob
   ______________________________________________________________________

   Prev        Home          Next
   deaggregate  Up  ocibindbyname
