summaryrefslogtreecommitdiff
path: root/ext/pgsql/tests
diff options
context:
space:
mode:
Diffstat (limited to 'ext/pgsql/tests')
-rwxr-xr-xext/pgsql/tests/80_bug27597.phpt60
1 files changed, 60 insertions, 0 deletions
diff --git a/ext/pgsql/tests/80_bug27597.phpt b/ext/pgsql/tests/80_bug27597.phpt
new file mode 100755
index 0000000000..aa04a4a225
--- /dev/null
+++ b/ext/pgsql/tests/80_bug27597.phpt
@@ -0,0 +1,60 @@
+--TEST--
+Bug #27597 pg_fetch_array not returning false
+--SKIPIF--
+<?php
+require_once('skipif.inc');
+?>
+--FILE--
+<?php
+
+require_once('config.inc');
+
+$dbh = @pg_connect($conn_str);
+if (!$dbh) {
+ die ("Could not connect to the server");
+}
+
+@pg_query("DROP TABLE id");
+pg_query("CREATE TABLE id (id INT)");
+
+for ($i=0; $i<4; $i++) {
+ pg_query("INSERT INTO id (id) VALUES ($i)");
+}
+
+function xi_fetch_array($res, $type = PGSQL_ASSOC) {
+ $a = pg_fetch_array($res, NULL, $type) ;
+ return $a ;
+}
+
+$res = pg_query("SELECT * FROM id");
+$i = 0; // endless-loop protection
+while($row = xi_fetch_array($res)) {
+ print_r($row);
+ if ($i++ > 4) {
+ echo "ENDLESS-LOOP";
+ exit(1);
+ }
+}
+
+pg_close($dbh);
+
+?>
+===DONE===
+--EXPECTF--
+Array
+(
+ [id] => 0
+)
+Array
+(
+ [id] => 1
+)
+Array
+(
+ [id] => 2
+)
+Array
+(
+ [id] => 3
+)
+===DONE===