]> granicus.if.org Git - php/commitdiff
- Fixed bug #48773 (Incorrect error when setting PDO::ATTR_STATEMENT_CLASS with ctor_...
authorFelipe Pena <felipe@php.net>
Sun, 19 Jul 2009 18:55:31 +0000 (18:55 +0000)
committerFelipe Pena <felipe@php.net>
Sun, 19 Jul 2009 18:55:31 +0000 (18:55 +0000)
  [HEAD only]

ext/pdo_sqlite/tests/bug48773.phpt [new file with mode: 0644]

diff --git a/ext/pdo_sqlite/tests/bug48773.phpt b/ext/pdo_sqlite/tests/bug48773.phpt
new file mode 100644 (file)
index 0000000..b8bdea9
--- /dev/null
@@ -0,0 +1,34 @@
+--TEST--
+Bug #48773 (Incorrect error when setting PDO::ATTR_STATEMENT_CLASS with ctor_args)
+--SKIPIF--
+<?php
+if (!extension_loaded('pdo_sqlite')) print 'skip not loaded';
+?>
+--FILE--
+<?php
+
+class bar extends PDOStatement {
+       private function __construct() {
+       }
+}
+
+class foo extends PDO {
+       public $statementClass = 'bar';
+       function __construct($dsn, $username, $password, $driver_options = array()) {
+               $driver_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
+               parent::__construct($dsn, $username, $password, $driver_options);
+
+               $this->setAttribute(PDO::ATTR_STATEMENT_CLASS, array($this->statementClass, array($this)));
+       }
+}
+
+$db = new foo('sqlite::memory:', '', '');
+$stmt = $db->query('SELECT 1');
+var_dump($stmt);
+
+?>
+--EXPECTF--
+object(bar)#%d (1) {
+  [%u|b%"queryString"]=>
+  %unicode|string%(8) "SELECT 1"
+}