Annotation of embedaddon/php/ext/pdo_pgsql/tests/bug43925.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Bug #43925 (Incorrect argument counter in prepared statements with pgsql)
        !             3: --SKIPIF--
        !             4: <?php
        !             5: if (!extension_loaded('pdo') || !extension_loaded('pdo_pgsql')) die('skip not loaded');
        !             6: require dirname(__FILE__) . '/config.inc';
        !             7: require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc';
        !             8: PDOTest::skip();
        !             9: ?>
        !            10: --FILE--
        !            11: <?php
        !            12: require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc';
        !            13: $dbh = PDOTest::test_factory(dirname(__FILE__) . '/common.phpt');
        !            14: 
        !            15: @$dbh->query('DROP TABLE nodes');
        !            16: 
        !            17: $dbh->query('
        !            18: CREATE TABLE nodes
        !            19: (
        !            20:    id   integer NOT NULL PRIMARY KEY
        !            21:  , root integer NOT NULL
        !            22:  , lft  integer NOT NULL
        !            23:  , rgt  integer NOT NULL
        !            24: );');
        !            25: 
        !            26: $dbh->query('INSERT INTO nodes (id, root, lft, rgt) VALUES (1, 1, 1, 6);');
        !            27: $dbh->query('INSERT INTO nodes (id, root, lft, rgt) VALUES (2, 1, 2, 3);');
        !            28: $dbh->query('INSERT INTO nodes (id, root, lft, rgt) VALUES (3, 1, 4, 5);');
        !            29: 
        !            30: 
        !            31: $stmt = $dbh->prepare('
        !            32:        SELECT * 
        !            33:        FROM nodes 
        !            34:        WHERE (:rootId > 0 OR lft > :left OR rgt > :left) 
        !            35:                AND (root = :rootId OR root  = :left)
        !            36:                AND (1 > :left OR 1 < :left OR 1 = :left) 
        !            37:                AND (:x > 0 OR :x < 10 OR :x > 100) 
        !            38:                OR :y = 1 OR :left = 1
        !            39: ');
        !            40: 
        !            41: $stmt->bindValue('left',   1, PDO::PARAM_INT);
        !            42: $stmt->bindValue('rootId', 3, PDO::PARAM_INT);
        !            43: $stmt->bindValue('x', 5, PDO::PARAM_INT);
        !            44: $stmt->bindValue('y', 50, PDO::PARAM_INT);
        !            45: 
        !            46: $stmt->execute();
        !            47: 
        !            48: foreach ($stmt->fetchAll() as $row) {
        !            49:        print implode(' - ', $row);
        !            50:        print "\n";
        !            51: }
        !            52: 
        !            53: $dbh->query('DROP TABLE nodes');
        !            54: 
        !            55: ?>
        !            56: --EXPECTF--
        !            57: 1 - 1 - 1 - 1 - 1 - 1 - 6 - 6
        !            58: 2 - 2 - 1 - 1 - 2 - 2 - 3 - 3
        !            59: 3 - 3 - 1 - 1 - 4 - 4 - 5 - 5

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>