Skip to content

Commit 7ca89ce

Browse files
committed
Fixing the mssql_query to handle multiple results correct if the first result does not return any data.
1 parent 37b9089 commit 7ca89ce

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

ext/mssql/php_mssql.c

+5-3
Original file line numberDiff line numberDiff line change
@@ -1053,7 +1053,7 @@ PHP_FUNCTION(mssql_query)
10531053
RETURN_FALSE;
10541054
}
10551055

1056-
if ((num_fields = dbnumcols(mssql_ptr->link)) <= 0) {
1056+
if ((num_fields = dbnumcols(mssql_ptr->link)) <= 0 && !dbdataready(mssql_ptr->link)) {
10571057
RETURN_TRUE;
10581058
}
10591059

@@ -1067,8 +1067,10 @@ PHP_FUNCTION(mssql_query)
10671067
result->mssql_ptr = mssql_ptr;
10681068
result->cur_field=result->cur_row=result->num_rows=0;
10691069

1070-
result->fields = (mssql_field *) emalloc(sizeof(mssql_field)*result->num_fields);
1071-
result->num_rows = _mssql_fetch_batch(mssql_ptr, result, retvalue TSRMLS_CC);
1070+
if (num_fields > 0) {
1071+
result->fields = (mssql_field *) emalloc(sizeof(mssql_field)*result->num_fields);
1072+
result->num_rows = _mssql_fetch_batch(mssql_ptr, result, retvalue TSRMLS_CC);
1073+
}
10721074

10731075
ZEND_REGISTER_RESOURCE(return_value, result, le_result);
10741076
}

0 commit comments

Comments
 (0)