Annotation of embedaddon/php/ext/pdo/tests/bug_44861.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: PDO Common: Bug #44861 (scrollable cursor don't work with pgsql)
3: --SKIPIF--
4: <?php # vim:ft=php
5: if (!extension_loaded('pdo')) die('skip');
6: $dir = getenv('REDIR_TEST_DIR');
7: if (false == $dir) die('skip no driver');
8: $allowed = array('oci', 'pgsql');
9: $ok = false;
10: foreach ($allowed as $driver) {
11: if (!strncasecmp(getenv('PDOTEST_DSN'), $driver, strlen($driver))) {
12: $ok = true;
13: }
14: }
15: if (!$ok) {
16: die("skip Scrollable cursors not supported");
17: }
18: require_once $dir . 'pdo_test.inc';
19: PDOTest::skip();
20: ?>
21: --FILE--
22: <?php
23: if (getenv('REDIR_TEST_DIR') === false) putenv('REDIR_TEST_DIR='.dirname(__FILE__) . '/../../pdo/tests/');
24: require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
25: $db = PDOTest::factory();
26:
27: $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
28:
29: if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'oci') {
30: $from = 'FROM DUAL';
31: $ob = '1';
32: } else {
33: $from = '';
34: $ob = 'r';
35: }
36:
37: $query = "SELECT 'row1' AS r $from UNION SELECT 'row2' $from UNION SELECT 'row3' $from UNION SELECT 'row4' $from ORDER BY $ob";
38: $aParams = array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL);
39:
40: $res = $db->prepare($query, $aParams);
41: $res->execute();
42: var_dump($res->fetchColumn());
43: var_dump($res->fetchColumn());
44: var_dump($res->fetchColumn());
45: var_dump($res->fetchColumn());
46: var_dump($res->fetchColumn());
47:
48: var_dump($res->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_ABS, 3));
49: var_dump($res->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_PRIOR));
50: var_dump($res->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_FIRST));
51: var_dump($res->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST));
52: var_dump($res->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_REL, -1));
53:
54: var_dump($res->fetchAll(PDO::FETCH_ASSOC));
55:
56: // Test binding params via emulated prepared query
57: $res = $db->prepare("SELECT ? $from", $aParams);
58: $res->execute(array("it's working"));
59: var_dump($res->fetch(PDO::FETCH_NUM));
60:
61:
62: // Test bug #48188, trying to execute again
63: $res->execute(array("try again"));
64: var_dump($res->fetchColumn());
65: var_dump($res->fetchColumn());
66:
67: ?>
68: --EXPECT--
69: string(4) "row1"
70: string(4) "row2"
71: string(4) "row3"
72: string(4) "row4"
73: bool(false)
74: array(1) {
75: [0]=>
76: string(4) "row3"
77: }
78: array(1) {
79: [0]=>
80: string(4) "row2"
81: }
82: array(1) {
83: [0]=>
84: string(4) "row1"
85: }
86: array(1) {
87: [0]=>
88: string(4) "row4"
89: }
90: array(1) {
91: [0]=>
92: string(4) "row3"
93: }
94: array(1) {
95: [0]=>
96: array(1) {
97: ["r"]=>
98: string(4) "row4"
99: }
100: }
101: array(1) {
102: [0]=>
103: string(12) "it's working"
104: }
105: string(9) "try again"
106: bool(false)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>