Annotation of embedaddon/php/ext/pdo/tests/pdo_005.phpt, revision 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>