From 7ca89cedf7436c15855716228ca388b3b266baa9 Mon Sep 17 00:00:00 2001 From: "Frank M. Kromann" Date: Wed, 15 May 2002 18:07:17 +0000 Subject: Fixing the mssql_query to handle multiple results correct if the first result does not return any data. --- ext/mssql/php_mssql.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'ext/mssql/php_mssql.c') diff --git a/ext/mssql/php_mssql.c b/ext/mssql/php_mssql.c index 321b30a3b1..0b0313b11d 100644 --- a/ext/mssql/php_mssql.c +++ b/ext/mssql/php_mssql.c @@ -1053,7 +1053,7 @@ PHP_FUNCTION(mssql_query) RETURN_FALSE; } - if ((num_fields = dbnumcols(mssql_ptr->link)) <= 0) { + if ((num_fields = dbnumcols(mssql_ptr->link)) <= 0 && !dbdataready(mssql_ptr->link)) { RETURN_TRUE; } @@ -1067,8 +1067,10 @@ PHP_FUNCTION(mssql_query) result->mssql_ptr = mssql_ptr; result->cur_field=result->cur_row=result->num_rows=0; - result->fields = (mssql_field *) emalloc(sizeof(mssql_field)*result->num_fields); - result->num_rows = _mssql_fetch_batch(mssql_ptr, result, retvalue TSRMLS_CC); + if (num_fields > 0) { + result->fields = (mssql_field *) emalloc(sizeof(mssql_field)*result->num_fields); + result->num_rows = _mssql_fetch_batch(mssql_ptr, result, retvalue TSRMLS_CC); + } ZEND_REGISTER_RESOURCE(return_value, result, le_result); } -- cgit v1.2.1