iliaa Thu Jul 7 20:40:33 2005 EDT Modified files: /php-src NEWS /php-src/ext/pgsql pgsql.c php_pgsql.h Log: Added pg_fetch_all_columns() function to fetch all values of a column from a result cursor. http://cvs.php.net/diff.php/php-src/NEWS?r1=1.1987&r2=1.1988&ty=u Index: php-src/NEWS diff -u php-src/NEWS:1.1987 php-src/NEWS:1.1988 --- php-src/NEWS:1.1987 Thu Jul 7 12:07:08 2005 +++ php-src/NEWS Thu Jul 7 20:40:32 2005 @@ -5,6 +5,8 @@ - Added PDO_MYSQL_ATTR_USE_BUFFERED_QUERY parameter for pdo_mysql. (Ilia) - Added date_timezone_set() function to set the timezone that the date functions will use. (Derick) +- Added pg_fetch_all_columns() function to fetch all values of a column from + a result cursor. (Ilia) - Implemented feature request #33452 (Year belonging to ISO week). (Derick) - Fixed support for shared extensions on AIX. (Dmitry) - Fixed memory corruption in pg_copy_from() in case the as_null parameter was http://cvs.php.net/diff.php/php-src/ext/pgsql/pgsql.c?r1=1.329&r2=1.330&ty=u Index: php-src/ext/pgsql/pgsql.c diff -u php-src/ext/pgsql/pgsql.c:1.329 php-src/ext/pgsql/pgsql.c:1.330 --- php-src/ext/pgsql/pgsql.c:1.329 Tue Jul 5 10:49:22 2005 +++ php-src/ext/pgsql/pgsql.c Thu Jul 7 20:40:32 2005 @@ -20,7 +20,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pgsql.c,v 1.329 2005/07/05 14:49:22 edink Exp $ */ +/* $Id: pgsql.c,v 1.330 2005/07/08 00:40:32 iliaa Exp $ */ #include <stdlib.h> @@ -127,6 +127,7 @@ PHP_FE(pg_fetch_array, NULL) PHP_FE(pg_fetch_object, NULL) PHP_FE(pg_fetch_all, NULL) + PHP_FE(pg_fetch_all_columns, NULL) #if HAVE_PQCMDTUPLES PHP_FE(pg_affected_rows,NULL) #endif @@ -2101,6 +2102,47 @@ } /* }}} */ +/* {{{ proto array pg_fetch_all_columns(resource result [, int column_number]) + Fetch all rows into array */ +PHP_FUNCTION(pg_fetch_all_columns) +{ + zval *result; + PGresult *pgsql_result; + pgsql_result_handle *pg_result; + long colno=0; + int pg_numrows, pg_row; + size_t num_fields; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r|l", &result, &colno) == FAILURE) { + RETURN_FALSE; + } + + ZEND_FETCH_RESOURCE(pg_result, pgsql_result_handle *, &result, -1, "PostgreSQL result", le_result); + + pgsql_result = pg_result->result; + + num_fields = PQnfields(pgsql_result); + if (colno >= num_fields || colno < 0) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid column number '%ld'", colno); + RETURN_FALSE; + } + + array_init(return_value); + + if ((pg_numrows = PQntuples(pgsql_result)) <= 0) { + return; + } + + for (pg_row = 0; pg_row < pg_numrows; pg_row++) { + if (PQgetisnull(pgsql_result, pg_row, colno)) { + add_next_index_null(return_value); + } else { + add_next_index_string(return_value, PQgetvalue(pgsql_result, pg_row, colno), 1); + } + } +} +/* }}} */ + /* {{{ proto bool pg_result_seek(resource result, int offset) Set internal row offset */ PHP_FUNCTION(pg_result_seek) http://cvs.php.net/diff.php/php-src/ext/pgsql/php_pgsql.h?r1=1.71&r2=1.72&ty=u Index: php-src/ext/pgsql/php_pgsql.h diff -u php-src/ext/pgsql/php_pgsql.h:1.71 php-src/ext/pgsql/php_pgsql.h:1.72 --- php-src/ext/pgsql/php_pgsql.h:1.71 Wed Apr 13 17:48:33 2005 +++ php-src/ext/pgsql/php_pgsql.h Thu Jul 7 20:40:32 2005 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_pgsql.h,v 1.71 2005/04/13 21:48:33 derick Exp $ */ +/* $Id: php_pgsql.h,v 1.72 2005/07/08 00:40:32 iliaa Exp $ */ #ifndef PHP_PGSQL_H #define PHP_PGSQL_H @@ -107,6 +107,7 @@ PHP_FUNCTION(pg_fetch_result); PHP_FUNCTION(pg_fetch_row); PHP_FUNCTION(pg_fetch_all); +PHP_FUNCTION(pg_fetch_all_columns); #if HAVE_PQCMDTUPLES PHP_FUNCTION(pg_affected_rows); #endif
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php