xref: /PHP-8.1/ext/pdo/tests/pdo_012.phpt (revision 74859783)
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