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>