summaryrefslogtreecommitdiff
path: root/ext/mssql/php_mssql.c
diff options
context:
space:
mode:
authorFrank M. Kromann <fmk@php.net>2003-11-17 20:53:28 +0000
committerFrank M. Kromann <fmk@php.net>2003-11-17 20:53:28 +0000
commitffa0515b59328e92df7def6b60a3dcc8354b526b (patch)
treefad84865d9e5d44b6feda05c7dbd57d232e09dde /ext/mssql/php_mssql.c
parent69796efc3780db5fd26dec7c45acd196903bc6d2 (diff)
downloadphp-git-ffa0515b59328e92df7def6b60a3dcc8354b526b.tar.gz
Fix for bug #25817
Check for a return value from a stored procedure right after fetching rows
Diffstat (limited to 'ext/mssql/php_mssql.c')
-rw-r--r--ext/mssql/php_mssql.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/ext/mssql/php_mssql.c b/ext/mssql/php_mssql.c
index 1956b22af4..31859e953d 100644
--- a/ext/mssql/php_mssql.c
+++ b/ext/mssql/php_mssql.c
@@ -1061,6 +1061,9 @@ static int _mssql_fetch_batch(mssql_link *mssql_ptr, mssql_result *result, int r
result->lastresult = retvalue;
}
efree(column_types);
+ if (result->statement) {
+ _mssql_get_sp_result(mssql_ptr, result->statement TSRMLS_CC);
+ }
return i;
}
@@ -1788,9 +1791,6 @@ PHP_FUNCTION(mssql_next_result)
RETURN_FALSE;
}
else if (retvalue == NO_MORE_RESULTS || retvalue == NO_MORE_RPC_RESULTS) {
- if (result->statement) {
- _mssql_get_sp_result(result->mssql_ptr, result->statement TSRMLS_CC);
- }
RETURN_FALSE;
}
else {
@@ -2120,11 +2120,8 @@ PHP_FUNCTION(mssql_execute)
result->num_fields = num_fields;
result->fields = (mssql_field *) emalloc(sizeof(mssql_field)*num_fields);
- result->num_rows = _mssql_fetch_batch(mssql_ptr, result, retvalue TSRMLS_CC);
result->statement = statement;
- }
- else {
- _mssql_get_sp_result(mssql_ptr, statement TSRMLS_CC);
+ result->num_rows = _mssql_fetch_batch(mssql_ptr, result, retvalue TSRMLS_CC);
}
}
}