bug48773.phpt 804 B

12345678910111213141516171819202122232425262728293031323334
  1. --TEST--
  2. Bug #48773 (Incorrect error when setting PDO::ATTR_STATEMENT_CLASS with ctor_args)
  3. --SKIPIF--
  4. <?php
  5. if (!extension_loaded('pdo_sqlite')) print 'skip not loaded';
  6. ?>
  7. --FILE--
  8. <?php
  9. class bar extends PDOStatement {
  10. private function __construct() {
  11. }
  12. }
  13. class foo extends PDO {
  14. public $statementClass = 'bar';
  15. function __construct($dsn, $username, $password, $driver_options = array()) {
  16. $driver_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
  17. parent::__construct($dsn, $username, $password, $driver_options);
  18. $this->setAttribute(PDO::ATTR_STATEMENT_CLASS, array($this->statementClass, array($this)));
  19. }
  20. }
  21. $db = new foo('sqlite::memory:', '', '');
  22. $stmt = $db->query('SELECT 1');
  23. var_dump($stmt);
  24. ?>
  25. --EXPECTF--
  26. object(bar)#%d (1) {
  27. ["queryString"]=>
  28. string(8) "SELECT 1"
  29. }