ID:               41676
 User updated by:  alison dot holloway at oracle dot com
 Reported By:      alison dot holloway at oracle dot com
-Status:           Feedback
+Status:           Open
 Bug Type:         PDO related
 Operating System: Windows XP SP2
 PHP Version:      5.2.3
 Assigned To:      edink
 New Comment:

My suggestion is to change the installer so that the following occurs.

Under PDO extensions, have two options for the Oracle PDO drivers:

1. Oracle8i/Oracle9i Client
   This installs php_pdo_oci8.dll

2. Oracle10g Client and above
   This installs php_pdo_oci.dll

The PDO library is based on the Oracle Client, not the Oracle Database,
so I think it's important to state that in the install notes in the
right hand pane when selecting the option. 

Each option should be mutually exclusive. So you can't install both.
This will cause problems.

The current two installs seem to do the same thing, install the
php_pdo_oci8.dll and php_pdo_oci.dll files. It doesn't make sense.

As for the errors that are currently happening, I haven't done any
further investigation, but I'd suggest getting the install right now,
then fixing the dll loading issues.


Previous Comments:
------------------------------------------------------------------------

[2007-06-26 11:09:44] [EMAIL PROTECTED]

So what do you propose, Alison?

------------------------------------------------------------------------

[2007-06-26 01:50:12] alison dot holloway at oracle dot com

On Windows platforms, the php_pdo_oci8.dll library was built against
the Oracle8i and 9i library. php_pdo_oci.dll was built against the
Oracle 10g library. So, php_pdo_oci8.dll may be used with Oracle 8i or
9i clients, and php_pdo_oci.dll should be used to connect to Oracle 10g
clients.

If both libraries are installed, this would likely cause problems
connecting to Oracle.

------------------------------------------------------------------------

[2007-06-25 18:56:38] [EMAIL PROTECTED]

Edin, what is php_pdo_oci8.dll and why do we have two dlls for PDO_OCI?

------------------------------------------------------------------------

[2007-06-13 07:10:15] alison dot holloway at oracle dot com

Of course, I meant "Install PHP 5.2.3" as the first line to reproduce
this.

------------------------------------------------------------------------

[2007-06-13 07:08:44] alison dot holloway at oracle dot com

Description:
------------
Startup errors when using PDO_OCI8 extension.

Reproduce code:
---------------
Install PHP 4.2.3

Select the following extensions to include in the install:

OCI8
PDO
PDO_OCI8

Turn on display_startup_errors in php.ini.

The following errors are displayed on Apache start up:

PHP Startup: Invalid library (maybe not a PHP library)
'php_pdo_oci8.dll'
PHP Startup: Invalid library (maybe not a PHP library)
'php_pdo_oci8.dll'

phpinfo() says the following PDO libraries are loaded

PDO
PDO support     enabled
PDO drivers     oci

PDO_OCI
PDO Driver for OCI 8 and later  enabled

Run a small Oracle 10g PDO script. This is the script I used against
and Oracle Database XE (10.2) database:

<?php

print_r(PDO::getAvailableDrivers());

  $dbh = new PDO('oci:dbname=//localhost/XE', 'hr', 'hr');
  $s = $dbh->prepare("select city from locations");
  $s->execute();
  while ($r = $s->fetch(PDO::FETCH_ASSOC)) {
    echo $r['CITY'] . "<br>";
  }
  $dbh = null;    // release the connection
?>

This script works, so PDO is actually installed and okay.

Here is the startup error in the Apache error log:

[Wed Jun 13 10:06:48 2007] [notice] Apache/2.0.59 (Win32) PHP/5.2.3
configured -- resuming normal operations
[Wed Jun 13 10:06:48 2007] [notice] Server built: Jul 27 2006 15:55:03
[Wed Jun 13 10:06:48 2007] [notice] Parent: Created child process 3516
PHP Warning:  PHP Startup: Invalid library (maybe not a PHP library)
'php_pdo_oci8.dll'  in Unknown on line 0
[Wed Jun 13 10:07:01 2007] [notice] Child 3516: Child process is
running
[Wed Jun 13 10:07:01 2007] [notice] Child 3516: Acquired the start
mutex.
[Wed Jun 13 10:07:01 2007] [notice] Child 3516: Starting 250 worker
threads.

The files in my C:\Program Files\PHP\ext folder are:

php_oci8.dll
php_pdo.dll
php_pdo_oci8.dll
php_pdo_oci.dll

The entries in my php.ini are:

[PHP_OCI8]
extension=php_oci8.dll
[PHP_PDO]
extension=php_pdo.dll
[PHP_PDO_OCI]
extension=php_pdo_oci.dll
[PHP_PDO_OCI8]
extension=php_pdo_oci8.dll

Expected result:
----------------
No startup errors.

Actual result:
--------------
The following errors are displayed on Apache start up:

PHP Startup: Invalid library (maybe not a PHP library)
'php_pdo_oci8.dll'
PHP Startup: Invalid library (maybe not a PHP library)
'php_pdo_oci8.dll'


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=41676&edit=1

Reply via email to