Annotation of embedaddon/php/ext/pdo/tests/pdo_023.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: PDO Common: extending PDO
                      3: --SKIPIF--
                      4: <?php # vim:ft=php
                      5: if (!extension_loaded('pdo')) die('skip');
                      6: $dir = getenv('REDIR_TEST_DIR');
                      7: if (false == $dir) die('skip no driver');
                      8: require_once $dir . 'pdo_test.inc';
                      9: PDOTest::skip();
                     10: ?>
                     11: --FILE--
                     12: <?php
                     13: if (getenv('REDIR_TEST_DIR') === false) putenv('REDIR_TEST_DIR='.dirname(__FILE__) . '/../../pdo/tests/');
                     14: require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
                     15: 
                     16: class PDOStatementX extends PDOStatement
                     17: {
                     18:     public $test1 = 1;
                     19:     
                     20:     protected function __construct()
                     21:     {
                     22:        $this->test2 = 2;
                     23:        $this->test2 = 22;
                     24:        echo __METHOD__ . "()\n";
                     25:     }
                     26:     
                     27:     function __destruct()
                     28:     {
                     29:        echo __METHOD__ . "()\n";
                     30:     }
                     31: }
                     32: 
                     33: class PDODatabaseX extends PDO
                     34: {
                     35:     public $test1 = 1;
                     36:     
                     37:     function __destruct()
                     38:     {
                     39:        echo __METHOD__ . "()\n";
                     40:     }
                     41:     
                     42:     function test()
                     43:     {
                     44:        $this->test2 = 2;
                     45:         var_dump($this->test1);
                     46:         var_dump($this->test2);
                     47:        $this->test2 = 22;
                     48:     }
                     49:     
                     50:     function query($sql)
                     51:     {
                     52:        echo __METHOD__ . "()\n";
                     53:        $stmt = parent::prepare($sql, array(PDO::ATTR_STATEMENT_CLASS=>array('PDOStatementx')));
                     54:        $stmt->execute();
                     55:        return $stmt;
                     56:     }
                     57: }
                     58: 
                     59: $db = PDOTest::factory('PDODatabaseX');
                     60: $db->test();
                     61: var_dump($db);
                     62: 
                     63: $db->query('CREATE TABLE test(id INT NOT NULL PRIMARY KEY, val VARCHAR(10))');
                     64: $db->query('INSERT INTO test VALUES(0, \'A\')');
                     65: $db->query('INSERT INTO test VALUES(1, \'B\')');
                     66: 
                     67: 
                     68: $stmt = $db->query('SELECT val, id FROM test');
                     69: var_dump($stmt);
                     70: var_dump($stmt->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_UNIQUE));
                     71: 
                     72: $stmt = NULL;
                     73: $db = NULL;
                     74: 
                     75: 
                     76: ?>
                     77: --EXPECTF--
                     78: int(1)
                     79: int(2)
                     80: object(PDODatabaseX)#%d (2) {
                     81:   ["test1"]=>
                     82:   int(1)
                     83:   ["test2"]=>
                     84:   int(22)
                     85: }
                     86: PDODatabaseX::query()
                     87: PDOStatementX::__construct()
                     88: PDOStatementX::__destruct()
                     89: PDODatabaseX::query()
                     90: PDOStatementX::__construct()
                     91: PDOStatementX::__destruct()
                     92: PDODatabaseX::query()
                     93: PDOStatementX::__construct()
                     94: PDOStatementX::__destruct()
                     95: PDODatabaseX::query()
                     96: PDOStatementX::__construct()
                     97: object(PDOStatementX)#%d (3) {
                     98:   ["test1"]=>
                     99:   int(1)
                    100:   ["queryString"]=>
                    101:   string(24) "SELECT val, id FROM test"
                    102:   ["test2"]=>
                    103:   int(22)
                    104: }
                    105: array(2) {
                    106:   ["A"]=>
                    107:   string(1) "0"
                    108:   ["B"]=>
                    109:   string(1) "1"
                    110: }
                    111: PDOStatementX::__destruct()
                    112: PDODatabaseX::__destruct()

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>