diff options
author | Anatol Belski <ab@php.net> | 2018-06-29 18:34:53 +0200 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2018-06-29 18:34:53 +0200 |
commit | cb97fd309790330bced04091fac46ea1466283c9 (patch) | |
tree | e5d28ad36c5991cf3a27e5a7731938406b566da5 | |
parent | bf5a802f5a87010cee94df1cda2918f3be8ae96e (diff) | |
download | php-git-cb97fd309790330bced04091fac46ea1466283c9.tar.gz |
Fixed bug #76548 pg_fetch_result did not fetch the next row
-rw-r--r-- | ext/pgsql/pgsql.c | 1 | ||||
-rw-r--r-- | ext/pgsql/tests/bug76548.phpt | 23 |
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== |