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.
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
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.
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.
Some cosmetic changes were made to the output of
php --ri oci8 and the
oci8.connection_class values are now shown only when the Oracle client libraries support the respective functionality.
Connection statistics are now in a separate
Temporary LOB and Collection support status lines in
phpinfo() output were removed. These two features have always been enabled since 2007.
oci_internal_debug() function is now a no-op. Use PHP's
--enable-dtrace functionality with DTrace or SystemTap instead.