diff options
| author | Marcus Boerger <helly@php.net> | 2004-03-15 19:47:18 +0000 |
|---|---|---|
| committer | Marcus Boerger <helly@php.net> | 2004-03-15 19:47:18 +0000 |
| commit | 0ace9f4885d261b14a0492124c9aa4939abd7f5f (patch) | |
| tree | 2a88b33fe6a01aa522d61269c52054e6a42f11cf /ext/pgsql/pgsql.c | |
| parent | 05158095cea53cb2d18de617bf8fc80132a1b277 (diff) | |
| download | php-git-0ace9f4885d261b14a0492124c9aa4939abd7f5f.tar.gz | |
Bugfix #27597 pg_fetch_array not returning false .
Diffstat (limited to 'ext/pgsql/pgsql.c')
| -rw-r--r-- | ext/pgsql/pgsql.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index 914ad66d65..2fb1a3075d 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -1403,7 +1403,7 @@ PHP_FUNCTION(pg_fetch_result) /* {{{ void php_pgsql_fetch_hash */ static void php_pgsql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, long result_type, int into_object) { - zval *result; + zval *result, *zrow; PGresult *pgsql_result; pgsql_result_handle *pg_result; int i, num_fields, pgsql_row, use_row; @@ -1432,10 +1432,14 @@ static void php_pgsql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, long result_type, result_type = PGSQL_ASSOC; use_row = 0; } else { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r|ll", &result, &row, &result_type) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r|zl", &result, &zrow, &result_type) == FAILURE) { return; } - use_row = ZEND_NUM_ARGS() > 1; + use_row = ZEND_NUM_ARGS() > 1 && Z_TYPE_P(zrow) != IS_NULL; + if (use_row) { + convert_to_long_ex(&zrow); + row = Z_LVAL_P(zrow); + } } if (!(result_type & PGSQL_BOTH)) { |
