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>