2
PDO Common: Bug #44861 (scrollable cursor don't work with pgsql)
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');
10
foreach ($allowed as $driver) {
11
if (!strncasecmp(getenv('PDOTEST_DSN'), $driver, strlen($driver))) {
16
die("skip Scrollable cursors not supported");
18
require_once $dir . 'pdo_test.inc';
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();
27
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
29
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'oci') {
35
$query = "SELECT 'row1' AS r $from UNION SELECT 'row2' $from UNION SELECT 'row3' $from UNION SELECT 'row4' $from";
36
$aParams = array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL);
38
$res = $db->prepare($query, $aParams);
40
var_dump($res->fetchColumn());
41
var_dump($res->fetchColumn());
42
var_dump($res->fetchColumn());
43
var_dump($res->fetchColumn());
44
var_dump($res->fetchColumn());
46
var_dump($res->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_ABS, 3));
47
var_dump($res->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_PRIOR));
48
var_dump($res->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_FIRST));
49
var_dump($res->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST));
50
var_dump($res->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_REL, -1));
52
var_dump($res->fetchAll(PDO::FETCH_ASSOC));
54
// Test binding params via emulated prepared query
55
$res = $db->prepare("SELECT ? $from", $aParams);
56
$res->execute(array("it's working"));
57
var_dump($res->fetch(PDO::FETCH_NUM));
60
// Test bug #48188, trying to execute again
61
$res->execute(array("try again"));
62
var_dump($res->fetchColumn());
63
var_dump($res->fetchColumn());
101
string(12) "it's working"
103
string(9) "try again"