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

1.1       misho       1: --TEST--
                      2: PDO Common: PDO::FETCH_CLASS
                      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: $db = PDOTest::factory();
                     16: 
                     17: $db->exec('CREATE TABLE test(id int NOT NULL PRIMARY KEY, val VARCHAR(10), val2 VARCHAR(10))');
                     18: $db->exec("INSERT INTO test VALUES(1, 'A', 'AA')");
                     19: $db->exec("INSERT INTO test VALUES(2, 'B', 'BB')");
                     20: $db->exec("INSERT INTO test VALUES(3, 'C', 'CC')");
                     21: 
                     22: $stmt = $db->prepare('SELECT id, val, val2 from test');
                     23: 
                     24: class TestBase
                     25: {
                     26:        public $id;
                     27:        protected $val;
                     28:        private $val2;
                     29: }
                     30: 
                     31: class TestDerived extends TestBase
                     32: {
                     33:        protected $row;
                     34: 
                     35:        public function __construct(&$row)
                     36:        {
                     37:                echo __METHOD__ . "($row,{$this->id})\n";
                     38:                $this->row = $row++;
                     39:        }
                     40: }
                     41: 
                     42: $stmt->execute();
                     43: var_dump($stmt->fetchAll(PDO::FETCH_CLASS));
                     44: 
                     45: $stmt->execute();
                     46: var_dump($stmt->fetchAll(PDO::FETCH_CLASS, 'TestBase'));
                     47: 
                     48: $stmt->execute();
                     49: var_dump($stmt->fetchAll(PDO::FETCH_CLASS, 'TestDerived', array(0)));
                     50: 
                     51: ?>
                     52: --EXPECTF--
                     53: array(3) {
                     54:   [0]=>
                     55:   object(stdClass)#%d (3) {
                     56:     ["id"]=>
                     57:     string(1) "1"
                     58:     ["val"]=>
                     59:     string(1) "A"
                     60:     ["val2"]=>
                     61:     string(2) "AA"
                     62:   }
                     63:   [1]=>
                     64:   object(stdClass)#%d (3) {
                     65:     ["id"]=>
                     66:     string(1) "2"
                     67:     ["val"]=>
                     68:     string(1) "B"
                     69:     ["val2"]=>
                     70:     string(2) "BB"
                     71:   }
                     72:   [2]=>
                     73:   object(stdClass)#%d (3) {
                     74:     ["id"]=>
                     75:     string(1) "3"
                     76:     ["val"]=>
                     77:     string(1) "C"
                     78:     ["val2"]=>
                     79:     string(2) "CC"
                     80:   }
                     81: }
                     82: array(3) {
                     83:   [0]=>
                     84:   object(TestBase)#%d (3) {
                     85:     ["id"]=>
                     86:     string(1) "1"
                     87:     ["val":protected]=>
                     88:     string(1) "A"
                     89:     ["val2":"TestBase":private]=>
                     90:     string(2) "AA"
                     91:   }
                     92:   [1]=>
                     93:   object(TestBase)#%d (3) {
                     94:     ["id"]=>
                     95:     string(1) "2"
                     96:     ["val":protected]=>
                     97:     string(1) "B"
                     98:     ["val2":"TestBase":private]=>
                     99:     string(2) "BB"
                    100:   }
                    101:   [2]=>
                    102:   object(TestBase)#%d (3) {
                    103:     ["id"]=>
                    104:     string(1) "3"
                    105:     ["val":protected]=>
                    106:     string(1) "C"
                    107:     ["val2":"TestBase":private]=>
                    108:     string(2) "CC"
                    109:   }
                    110: }
                    111: TestDerived::__construct(0,1)
                    112: TestDerived::__construct(1,2)
                    113: TestDerived::__construct(2,3)
                    114: array(3) {
                    115:   [0]=>
                    116:   object(TestDerived)#%d (5) {
                    117:     ["row":protected]=>
                    118:     int(0)
                    119:     ["id"]=>
                    120:     string(1) "1"
                    121:     ["val":protected]=>
                    122:     string(1) "A"
                    123:     ["val2":"TestBase":private]=>
                    124:     NULL
                    125:     ["val2"]=>
                    126:     string(2) "AA"
                    127:   }
                    128:   [1]=>
                    129:   object(TestDerived)#%d (5) {
                    130:     ["row":protected]=>
                    131:     int(1)
                    132:     ["id"]=>
                    133:     string(1) "2"
                    134:     ["val":protected]=>
                    135:     string(1) "B"
                    136:     ["val2":"TestBase":private]=>
                    137:     NULL
                    138:     ["val2"]=>
                    139:     string(2) "BB"
                    140:   }
                    141:   [2]=>
                    142:   object(TestDerived)#%d (5) {
                    143:     ["row":protected]=>
                    144:     int(2)
                    145:     ["id"]=>
                    146:     string(1) "3"
                    147:     ["val":protected]=>
                    148:     string(1) "C"
                    149:     ["val2":"TestBase":private]=>
                    150:     NULL
                    151:     ["val2"]=>
                    152:     string(2) "CC"
                    153:   }
                    154: }

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