summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2018-06-29 18:34:53 +0200
committerAnatol Belski <ab@php.net>2018-06-29 18:34:53 +0200
commitcb97fd309790330bced04091fac46ea1466283c9 (patch)
treee5d28ad36c5991cf3a27e5a7731938406b566da5
parentbf5a802f5a87010cee94df1cda2918f3be8ae96e (diff)
downloadphp-git-cb97fd309790330bced04091fac46ea1466283c9.tar.gz
Fixed bug #76548 pg_fetch_result did not fetch the next row
-rw-r--r--ext/pgsql/pgsql.c1
-rw-r--r--ext/pgsql/tests/bug76548.phpt23
2 files changed, 24 insertions, 0 deletions
diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c
index 904b9aa3bf..6da01d448b 100644
--- a/ext/pgsql/pgsql.c
+++ b/ext/pgsql/pgsql.c
@@ -2669,6 +2669,7 @@ PHP_FUNCTION(pg_fetch_result)
if (pgsql_row >= PQntuples(pgsql_result)) {
RETURN_FALSE;
}
+ pg_result->row++;
} else {
if (row < 0 || row >= PQntuples(pgsql_result)) {
php_error_docref(NULL, E_WARNING, "Unable to jump to row " ZEND_LONG_FMT " on PostgreSQL result index " ZEND_LONG_FMT,
diff --git a/ext/pgsql/tests/bug76548.phpt b/ext/pgsql/tests/bug76548.phpt
new file mode 100644
index 0000000000..3a0b8922e1
--- /dev/null
+++ b/ext/pgsql/tests/bug76548.phpt
@@ -0,0 +1,23 @@
+--TEST--
+Bug #76548 pg_fetch_result did not fetch the next row
+--SKIPIF--
+<?php include("skipif.inc"); ?>
+--FILE--
+<?php
+include('config.inc');
+
+$conn = pg_connect($conn_str);
+
+$result = pg_query($conn, 'SELECT v FROM (VALUES (1), (2), (3)) AS t(v)');
+
+while ($value = pg_fetch_result($result, 0)) {
+ var_dump($value); // should be 1, 2 then 3.
+}
+
+?>
+==DONE==
+--EXPECTF--
+string(1) "1"
+string(1) "2"
+string(1) "3"
+==DONE==