summaryrefslogtreecommitdiff
path: root/ext/mssql/php_mssql.c
diff options
context:
space:
mode:
authorFrank M. Kromann <fmk@php.net>2002-05-15 18:07:17 +0000
committerFrank M. Kromann <fmk@php.net>2002-05-15 18:07:17 +0000
commit7ca89cedf7436c15855716228ca388b3b266baa9 (patch)
tree6f291db1e567eab40f4ebd54016c961a01c44a76 /ext/mssql/php_mssql.c
parent37b9089bfa3527d2bab7a0a2bd0bfd375ea45169 (diff)
downloadphp-git-7ca89cedf7436c15855716228ca388b3b266baa9.tar.gz
Fixing the mssql_query to handle multiple results correct if the first result does not return any data.
Diffstat (limited to 'ext/mssql/php_mssql.c')
-rw-r--r--ext/mssql/php_mssql.c8
1 files changed, 5 insertions, 3 deletions
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);
}