Skip to content

Commit cd85c8f

Browse files
committed
ext/pdo: Shared unit test for PDO::ATTR_FETCH_TABLE_NAMES
In addition to the MySQL specific one.
1 parent 19e297c commit cd85c8f

1 file changed

Lines changed: 58 additions & 0 deletions

File tree

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
--TEST--
2+
PDO Common: PDO::ATTR_FETCH_TABLE_NAMES
3+
--EXTENSIONS--
4+
pdo
5+
--SKIPIF--
6+
<?php
7+
$dir = getenv('REDIR_TEST_DIR');
8+
if (false == $dir) die('skip no driver');
9+
require_once $dir . 'pdo_test.inc';
10+
PDOTest::skip();
11+
?>
12+
--FILE--
13+
<?php
14+
require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
15+
$db = PDOTest::factory();
16+
17+
$table = 'pdo_attr_fetch_table_names';
18+
$db->exec("CREATE TABLE {$table} (id INT, label CHAR(1), PRIMARY KEY(id))");
19+
$db->exec("INSERT INTO {$table} (id, label) VALUES (1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e'), (6, 'f')");
20+
21+
$db->setAttribute(PDO::ATTR_FETCH_TABLE_NAMES, true);
22+
var_dump($db->getAttribute(PDO::ATTR_FETCH_TABLE_NAMES));
23+
$stmt = $db->query("SELECT label FROM {$table} LIMIT 1");
24+
var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
25+
$stmt->closeCursor();
26+
27+
$db->setAttribute(PDO::ATTR_FETCH_TABLE_NAMES, false);
28+
var_dump($db->getAttribute(PDO::ATTR_FETCH_TABLE_NAMES));
29+
$stmt = $db->query("SELECT label FROM {$table} LIMIT 1");
30+
var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
31+
$stmt->closeCursor();
32+
33+
print "done!";
34+
?>
35+
--CLEAN--
36+
<?php
37+
require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
38+
$db = PDOTest::factory();
39+
$db->query('DROP TABLE IF EXISTS pdo_attr_fetch_table_names');
40+
?>
41+
--EXPECT--
42+
bool(true)
43+
array(1) {
44+
[0]=>
45+
array(1) {
46+
["pdo_attr_fetch_table_names.label"]=>
47+
string(1) "a"
48+
}
49+
}
50+
bool(false)
51+
array(1) {
52+
[0]=>
53+
array(1) {
54+
["label"]=>
55+
string(1) "a"
56+
}
57+
}
58+
done!

0 commit comments

Comments
 (0)