1--TEST-- 2PDO Common: PDOStatement::setFetchMode 3--EXTENSIONS-- 4pdo 5--SKIPIF-- 6<?php 7$dir = getenv('REDIR_TEST_DIR'); 8if (false == $dir) die('skip no driver'); 9require_once $dir . 'pdo_test.inc'; 10PDOTest::skip(); 11?> 12--FILE-- 13<?php 14if (getenv('REDIR_TEST_DIR') === false) putenv('REDIR_TEST_DIR='.__DIR__ . '/../../pdo/tests/'); 15require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc'; 16$db = PDOTest::factory(); 17 18$db->exec('CREATE TABLE test(id int NOT NULL PRIMARY KEY, val VARCHAR(10), grp VARCHAR(10))'); 19$db->exec('INSERT INTO test VALUES(1, \'A\', \'Group1\')'); 20$db->exec('INSERT INTO test VALUES(2, \'B\', \'Group2\')'); 21 22$SELECT = 'SELECT val, grp FROM test'; 23 24$stmt = $db->query($SELECT, PDO::FETCH_NUM); 25var_dump($stmt->fetchAll()); 26 27class Test 28{ 29 function __construct($name = 'N/A') 30 { 31 echo __METHOD__ . "($name)\n"; 32 } 33} 34 35unset($stmt); 36 37$stmt = $db->query($SELECT, PDO::FETCH_CLASS, 'Test'); 38var_dump($stmt->fetchAll()); 39 40unset($stmt); 41 42$stmt = $db->query($SELECT, PDO::FETCH_NUM); 43$stmt->setFetchMode(PDO::FETCH_CLASS, 'Test', array('Changed')); 44var_dump($stmt->fetchAll()); 45 46?> 47--EXPECTF-- 48array(2) { 49 [0]=> 50 array(2) { 51 [0]=> 52 string(1) "A" 53 [1]=> 54 string(6) "Group1" 55 } 56 [1]=> 57 array(2) { 58 [0]=> 59 string(1) "B" 60 [1]=> 61 string(6) "Group2" 62 } 63} 64Test::__construct(N/A) 65Test::__construct(N/A) 66array(2) { 67 [0]=> 68 object(Test)#%d (2) { 69 ["val"]=> 70 string(1) "A" 71 ["grp"]=> 72 string(6) "Group1" 73 } 74 [1]=> 75 object(Test)#%d (2) { 76 ["val"]=> 77 string(1) "B" 78 ["grp"]=> 79 string(6) "Group2" 80 } 81} 82Test::__construct(Changed) 83Test::__construct(Changed) 84array(2) { 85 [0]=> 86 object(Test)#%d (2) { 87 ["val"]=> 88 string(1) "A" 89 ["grp"]=> 90 string(6) "Group1" 91 } 92 [1]=> 93 object(Test)#%d (2) { 94 ["val"]=> 95 string(1) "B" 96 ["grp"]=> 97 string(6) "Group2" 98 } 99} 100