From:             saschagros at gmail dot com
Operating system: Linux
PHP version:      6CVS-2009-07-02 (snap)
PHP Bug Type:     PDO related
Bug description:  Incorrect error when setting PDO::ATTR_STATEMENT_CLASS with 
ctor_args

Description:
------------
I'm getting the following error when the ATTR_STATEMENT_CLASS option is
set...

Fatal error: Uncaught exception 'PDOException' with message
'SQLSTATE[HY000]: General error: PDO::ATTR_STATEMENT_CLASS requires format
array(classname, array(ctor_args)); the classname must be a string
specifying an existing class' in
..../drupal7/includes/database/database.inc:338

The same configuration works for PHP 5.2 and 5.3

The reproduce code is the constructor of the DatabaseConnection class of
Drupal 7, see also
http://cvs.drupal.org/viewvc.py/drupal/drupal/includes/database/database.inc?revision=1.57&view=markup

Reproduce code:
---------------
  function __construct($dsn, $username, $password, $driver_options =
array()) {
    // Because the other methods don't seem to work right.
    $driver_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;

    // Call PDO::__construct and PDO::setAttribute.
    parent::__construct($dsn, $username, $password, $driver_options);

    // Set a specific PDOStatement class if the driver requires that.
    if (!empty($this->statementClass)) {
      $this->setAttribute(PDO::ATTR_STATEMENT_CLASS,
array($this->statementClass, array($this)));
    }
  }


Expected result:
----------------
The connection can be established....

Actual result:
--------------
Fatal error: Uncaught exception 'PDOException' with message
'SQLSTATE[HY000]: General error: PDO::ATTR_STATEMENT_CLASS requires format
array(classname, array(ctor_args)); the classname must be a string
specifying an existing class' in
..../drupal7/includes/database/database.inc:338
Stack trace:
#0 .../drupal7/includes/database/database.inc(338): PDO->setAttribute(13,
Array)
#1 .../drupal7/includes/database/mysql/database.inc(36):
DatabaseConnection->__construct('mysql:host=loca...', 'd7', 'd7', Array)
#2 /.../drupal7/includes/database/database.inc(1350):
DatabaseConnection_mysql->__construct(Array)
#3 .../drupal7/includes/database/database.inc(1218):
Database::openConnection('default', 'default')
#4 .../drupal7/includes/database/database.inc(1793):
Database::getConnection('default')
#5 .../drupal7/includes/bootstrap.inc(1242): db_query('SELECT 1 FROM
{...', Array)


-- 
Edit bug report at http://bugs.php.net/?id=48773&edit=1
-- 
Try a CVS snapshot (PHP 5.2):        
http://bugs.php.net/fix.php?id=48773&r=trysnapshot52
Try a CVS snapshot (PHP 5.3):        
http://bugs.php.net/fix.php?id=48773&r=trysnapshot53
Try a CVS snapshot (PHP 6.0):        
http://bugs.php.net/fix.php?id=48773&r=trysnapshot60
Fixed in CVS:                        
http://bugs.php.net/fix.php?id=48773&r=fixedcvs
Fixed in CVS and need be documented: 
http://bugs.php.net/fix.php?id=48773&r=needdocs
Fixed in release:                    
http://bugs.php.net/fix.php?id=48773&r=alreadyfixed
Need backtrace:                      
http://bugs.php.net/fix.php?id=48773&r=needtrace
Need Reproduce Script:               
http://bugs.php.net/fix.php?id=48773&r=needscript
Try newer version:                   
http://bugs.php.net/fix.php?id=48773&r=oldversion
Not developer issue:                 
http://bugs.php.net/fix.php?id=48773&r=support
Expected behavior:                   
http://bugs.php.net/fix.php?id=48773&r=notwrong
Not enough info:                     
http://bugs.php.net/fix.php?id=48773&r=notenoughinfo
Submitted twice:                     
http://bugs.php.net/fix.php?id=48773&r=submittedtwice
register_globals:                    
http://bugs.php.net/fix.php?id=48773&r=globals
PHP 4 support discontinued:          http://bugs.php.net/fix.php?id=48773&r=php4
Daylight Savings:                    http://bugs.php.net/fix.php?id=48773&r=dst
IIS Stability:                       
http://bugs.php.net/fix.php?id=48773&r=isapi
Install GNU Sed:                     
http://bugs.php.net/fix.php?id=48773&r=gnused
Floating point limitations:          
http://bugs.php.net/fix.php?id=48773&r=float
No Zend Extensions:                  
http://bugs.php.net/fix.php?id=48773&r=nozend
MySQL Configuration Error:           
http://bugs.php.net/fix.php?id=48773&r=mysqlcfg

Reply via email to