summaryrefslogtreecommitdiff
path: root/ext/pdo_pgsql
diff options
context:
space:
mode:
authorFelipe Pena <felipe@php.net>2008-10-23 18:53:05 +0000
committerFelipe Pena <felipe@php.net>2008-10-23 18:53:05 +0000
commit981a23fff3d320d5f61c706dfa9c291ba65a6f3b (patch)
tree0fef2d823afbbdf1dfa8e4ef4b09f20aa5d9f9ba /ext/pdo_pgsql
parent7d5a67a0227842c8a037a0865a244942697f1da5 (diff)
downloadphp-git-981a23fff3d320d5f61c706dfa9c291ba65a6f3b.tar.gz
- MFH: Fixed bug #43925 (Incorrect argument counter in prepared statements with pgsql)
Diffstat (limited to 'ext/pdo_pgsql')
-rw-r--r--ext/pdo_pgsql/tests/bug43925.phpt59
1 files changed, 59 insertions, 0 deletions
diff --git a/ext/pdo_pgsql/tests/bug43925.phpt b/ext/pdo_pgsql/tests/bug43925.phpt
new file mode 100644
index 0000000000..e22ffba041
--- /dev/null
+++ b/ext/pdo_pgsql/tests/bug43925.phpt
@@ -0,0 +1,59 @@
+--TEST--
+Bug #43925 (Incorrect argument counter in prepared statements with pgsql)
+--SKIPIF--
+<?php
+if (!extension_loaded('pdo') || !extension_loaded('pdo_pgsql')) die('skip not loaded');
+require dirname(__FILE__) . '/config.inc';
+require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc';
+PDOTest::skip();
+?>
+--FILE--
+<?php
+require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc';
+$dbh = PDOTest::test_factory(dirname(__FILE__) . '/common.phpt');
+
+@$dbh->query('DROP TABLE nodes');
+
+$dbh->query('
+CREATE TABLE nodes
+(
+ id integer NOT NULL PRIMARY KEY
+ , root integer NOT NULL
+ , lft integer NOT NULL
+ , rgt integer NOT NULL
+);');
+
+$dbh->query('INSERT INTO nodes (id, root, lft, rgt) VALUES (1, 1, 1, 6);');
+$dbh->query('INSERT INTO nodes (id, root, lft, rgt) VALUES (2, 1, 2, 3);');
+$dbh->query('INSERT INTO nodes (id, root, lft, rgt) VALUES (3, 1, 4, 5);');
+
+
+$stmt = $dbh->prepare('
+ SELECT *
+ FROM nodes
+ WHERE (:rootId > 0 OR lft > :left OR rgt > :left)
+ AND (root = :rootId OR root = :left)
+ AND (1 > :left OR 1 < :left OR 1 = :left)
+ AND (:x > 0 OR :x < 10 OR :x > 100)
+ OR :y = 1 OR :left = 1
+');
+
+$stmt->bindValue('left', 1, PDO::PARAM_INT);
+$stmt->bindValue('rootId', 3, PDO::PARAM_INT);
+$stmt->bindValue('x', 5, PDO::PARAM_INT);
+$stmt->bindValue('y', 50, PDO::PARAM_INT);
+
+$stmt->execute();
+
+foreach ($stmt->fetchAll() as $row) {
+ print implode(' - ', $row);
+ print "\n";
+}
+
+$dbh->query('DROP TABLE nodes');
+
+?>
+--EXPECTF--
+1 - 1 - 1 - 1 - 1 - 1 - 6 - 6
+2 - 2 - 1 - 1 - 2 - 2 - 3 - 3
+3 - 3 - 1 - 1 - 4 - 4 - 5 - 5