1--TEST-- 2PDO Common: PDOStatement iterator 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->prepare($SELECT); 25 26$stmt->execute(); 27$stmt->setFetchMode(PDO::FETCH_NUM); 28foreach ($stmt as $data) 29{ 30 var_dump($data); 31} 32 33class Test 34{ 35 function __construct($name = 'N/A') 36 { 37 echo __METHOD__ . "($name)\n"; 38 } 39} 40 41unset($stmt); 42 43foreach ($db->query($SELECT, PDO::FETCH_CLASS, 'Test') as $data) 44{ 45 var_dump($data); 46} 47 48unset($stmt); 49 50$stmt = $db->query($SELECT, PDO::FETCH_CLASS, 'Test', array('WOW')); 51 52foreach($stmt as $data) 53{ 54 var_dump($data); 55} 56?> 57--EXPECTF-- 58array(2) { 59 [0]=> 60 string(1) "A" 61 [1]=> 62 string(6) "Group1" 63} 64array(2) { 65 [0]=> 66 string(1) "B" 67 [1]=> 68 string(6) "Group2" 69} 70Test::__construct(N/A) 71object(Test)#%d (2) { 72 ["val"]=> 73 string(1) "A" 74 ["grp"]=> 75 string(6) "Group1" 76} 77Test::__construct(N/A) 78object(Test)#%d (2) { 79 ["val"]=> 80 string(1) "B" 81 ["grp"]=> 82 string(6) "Group2" 83} 84Test::__construct(WOW) 85object(Test)#%d (2) { 86 ["val"]=> 87 string(1) "A" 88 ["grp"]=> 89 string(6) "Group1" 90} 91Test::__construct(WOW) 92object(Test)#%d (2) { 93 ["val"]=> 94 string(1) "B" 95 ["grp"]=> 96 string(6) "Group2" 97} 98