Annotation of embedaddon/php/ext/pdo/tests/bug_44861.phpt, revision 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>