- by cj
The PHP OCI8 2.0.6 extension for Oracle Database is now
"production" status. The source code is available on PECL. This can be used
immediately to update your OCI8 extension in PHP 5.2 and later
versions. The extension compiles with Oracle 10.2 or later client
libraries. Oracle's standard cross-version database connectivity
applies.
OCI8 2.0 and PHP 5.5.5 RPMs for Oracle and Red Hat Linux are
available from oss.oracle.com. Windows DLLs are available on PECL for PHP 5.3,
PHP 5.4 and PHP 5.5.
OCI8 2.0 source code will also be automatically included in
the next major version of PHP.
New Functionality
Oracle Database 12c Implicit Result Set
support. IRS's make it easy to pass query results back from
stored PL/SQL procedures or anonymous PL/SQL blocks. Individual
IRS statement resources, each corresponding to a single query, can
be obtained with the new function
oci_get_implicit_resultset(). These 'child'
statement resources can be passed to any oci_fetch_*
function. See Using PHP and Oracle Database 12c Implicit Result Sets
and the PHP Manual: oci_get_implicit_resultset().
DTrace Dynamic Trace static probes. This well respected
DTrace tracing framework is available on a number of platforms,
including Oracle Linux. PHP OCI8 static user-space probes can be enabled
with PHP's --enable-dtrace configuration
option. See Using PHP DTrace on Oracle Linux. Documentation is also
available in the PHP Manual OCI8 and DTrace
Dynamic Tracing
Improved Functionality
Using oci_execute($s, OCI_NO_AUTO_COMMIT) for a
SELECT no longer unnecessarily initiates an internal
ROLLBACK during connection close. This can improve overall scalability
by reducing "round trips" between PHP and the database.
Changed Functionality
PHP OCI8 2.0's minimum pre-requisites are now PHP 5.2 and
Oracle client library 10.2. Later versions of both are usable
and, in fact, recommended. Use the older PHP OCI8 1.4.10
extension when using PHP 4.3.9 through to PHP 5.1.x, or when only
Oracle Database 9.2 client libraries are available.
oci_set_*($connection, ...) meta data setting call
error handling is fixed so that
oci_error($connection) works for these calls.
Note: The old, deprecated function aliases like
ocilogon still exist but are not recommended for new
applications.
Phpinfo() Changes
Some cosmetic changes were made to the output of php --ri
oci8 and the phpinfo() function.
The oci8.event and
oci8.connection_class values are now shown only when
the Oracle client libraries support the respective
functionality.
Connection statistics are now in a separate
phpinfo() table.
Temporary LOB and Collection support status lines in
phpinfo() output were removed. These two features
have always been enabled since 2007.
Oci_internal_debug() Changes
The oci_internal_debug() function is now a
no-op. Use PHP's --enable-dtrace functionality with
DTrace or SystemTap instead.
References
OCI8 Extension source code and Windows DLLs http://pecl.php.net/package/oci8
Oracle Linux RPMs oss.oracle.com
PHP Manual for OCI8 OCI8 and DTrace Dynamic
Tracing
Oracle OpenWorld Conference paper What's New in Oracle Database 12c for PHP