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

1.1       misho       1: --TEST--
                      2: PDO Common: PDO::FETCH_CLASSTYPE and GROUP/UNIQUE
                      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 classtypes(id int NOT NULL PRIMARY KEY, name VARCHAR(10) NOT NULL UNIQUE)');
                     18: $db->exec('INSERT INTO classtypes VALUES(0, \'stdClass\')'); 
                     19: $db->exec('INSERT INTO classtypes VALUES(1, \'Test1\')'); 
                     20: $db->exec('INSERT INTO classtypes VALUES(2, \'Test2\')'); 
                     21: $db->exec('CREATE TABLE test(id int NOT NULL PRIMARY KEY, classtype int, val VARCHAR(10), grp VARCHAR(10))');
                     22: $db->exec('INSERT INTO test VALUES(1, 0, \'A\', \'Group1\')'); 
                     23: $db->exec('INSERT INTO test VALUES(2, 1, \'B\', \'Group1\')'); 
                     24: $db->exec('INSERT INTO test VALUES(3, 2, \'C\', \'Group2\')'); 
                     25: $db->exec('INSERT INTO test VALUES(4, 3, \'D\', \'Group2\')'); 
                     26: 
                     27: $stmt = $db->prepare('SELECT classtypes.name, test.grp AS grp, test.id AS id, test.val AS val FROM test LEFT JOIN classtypes ON test.classtype=classtypes.id');
                     28: 
                     29: class Test1
                     30: {
                     31:        public function __construct()
                     32:        {
                     33:                echo __METHOD__ . "()\n";
                     34:        }
                     35: }
                     36: 
                     37: class Test2
                     38: {
                     39:        public function __construct()
                     40:        {
                     41:                echo __METHOD__ . "()\n";
                     42:        }
                     43: }
                     44: 
                     45: class Test3
                     46: {
                     47:        public function __construct()
                     48:        {
                     49:                echo __METHOD__ . "()\n";
                     50:        }
                     51: }
                     52: 
                     53: 
                     54: $stmt->execute();
                     55: var_dump($stmt->fetchAll(PDO::FETCH_CLASS|PDO::FETCH_CLASSTYPE|PDO::FETCH_GROUP, 'Test3'));
                     56: 
                     57: $stmt->execute();
                     58: var_dump($stmt->fetchAll(PDO::FETCH_CLASS|PDO::FETCH_CLASSTYPE|PDO::FETCH_UNIQUE, 'Test3'));
                     59: 
                     60: ?>
                     61: --EXPECTF--
                     62: Test1::__construct()
                     63: Test2::__construct()
                     64: Test3::__construct()
                     65: array(2) {
                     66:   ["Group1"]=>
                     67:   array(2) {
                     68:     [0]=>
                     69:     object(stdClass)#%d (2) {
                     70:       ["id"]=>
                     71:       string(1) "1"
                     72:       ["val"]=>
                     73:       string(1) "A"
                     74:     }
                     75:     [1]=>
                     76:     object(Test1)#%d (2) {
                     77:       ["id"]=>
                     78:       string(1) "2"
                     79:       ["val"]=>
                     80:       string(1) "B"
                     81:     }
                     82:   }
                     83:   ["Group2"]=>
                     84:   array(2) {
                     85:     [0]=>
                     86:     object(Test2)#%d (2) {
                     87:       ["id"]=>
                     88:       string(1) "3"
                     89:       ["val"]=>
                     90:       string(1) "C"
                     91:     }
                     92:     [1]=>
                     93:     object(Test3)#%d (2) {
                     94:       ["id"]=>
                     95:       string(1) "4"
                     96:       ["val"]=>
                     97:       string(1) "D"
                     98:     }
                     99:   }
                    100: }
                    101: Test1::__construct()
                    102: Test2::__construct()
                    103: Test3::__construct()
                    104: array(2) {
                    105:   ["Group1"]=>
                    106:   object(Test1)#%d (2) {
                    107:     ["id"]=>
                    108:     string(1) "2"
                    109:     ["val"]=>
                    110:     string(1) "B"
                    111:   }
                    112:   ["Group2"]=>
                    113:   object(Test3)#%d (2) {
                    114:     ["id"]=>
                    115:     string(1) "4"
                    116:     ["val"]=>
                    117:     string(1) "D"
                    118:   }
                    119: }

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