xref: /PHP-8.0/ext/pdo/tests/pdo_034.phpt (revision f8d79582)
1--TEST--
2PDO Common: PDO::FETCH_KEY_PAIR fetch mode test
3--SKIPIF--
4<?php
5if (!extension_loaded('pdo')) die('skip');
6$dir = getenv('REDIR_TEST_DIR');
7if (false == $dir) die('skip no driver');
8require_once $dir . 'pdo_test.inc';
9PDOTest::skip();
10?>
11--FILE--
12<?php
13if (getenv('REDIR_TEST_DIR') === false) putenv('REDIR_TEST_DIR='.__DIR__ . '/../../pdo/tests/');
14require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
15$db = PDOTest::factory();
16
17$db->exec("CREATE TABLE test (a varchar(100), b varchar(100), c varchar(100))");
18
19for ($i = 0; $i < 5; $i++) {
20    $db->exec("INSERT INTO test (a,b,c) VALUES('test".$i."','".$i."','".$i."')");
21}
22
23var_dump($db->query("SELECT a,b FROM test")->fetch(PDO::FETCH_KEY_PAIR));
24var_dump($db->query("SELECT a,b FROM test")->fetchAll(PDO::FETCH_KEY_PAIR));
25var_dump($db->query("SELECT * FROM test")->fetch(PDO::FETCH_KEY_PAIR));
26var_dump($db->query("SELECT a,a FROM test")->fetchAll(PDO::FETCH_KEY_PAIR));
27
28?>
29--EXPECTF--
30array(1) {
31  ["test0"]=>
32  string(1) "0"
33}
34array(5) {
35  ["test0"]=>
36  string(1) "0"
37  ["test1"]=>
38  string(1) "1"
39  ["test2"]=>
40  string(1) "2"
41  ["test3"]=>
42  string(1) "3"
43  ["test4"]=>
44  string(1) "4"
45}
46
47Warning: PDOStatement::fetch(): SQLSTATE[HY000]: General error: PDO::FETCH_KEY_PAIR fetch mode requires the result set to contain exactly 2 columns. in %spdo_034.php on line %d
48
49Warning: PDOStatement::fetch(): SQLSTATE[HY000]: General error%spdo_034.php on line %d
50bool(false)
51array(5) {
52  ["test0"]=>
53  string(5) "test0"
54  ["test1"]=>
55  string(5) "test1"
56  ["test2"]=>
57  string(5) "test2"
58  ["test3"]=>
59  string(5) "test3"
60  ["test4"]=>
61  string(5) "test4"
62}
63