Annotation of embedaddon/php/ext/pdo_pgsql/tests/bug43925.phpt, revision 1.1.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>