diff options
| author | Frank M. Kromann <fmk@php.net> | 2003-11-17 20:53:28 +0000 |
|---|---|---|
| committer | Frank M. Kromann <fmk@php.net> | 2003-11-17 20:53:28 +0000 |
| commit | ffa0515b59328e92df7def6b60a3dcc8354b526b (patch) | |
| tree | fad84865d9e5d44b6feda05c7dbd57d232e09dde /ext/mssql/php_mssql.c | |
| parent | 69796efc3780db5fd26dec7c45acd196903bc6d2 (diff) | |
| download | php-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.c | 11 |
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); } } } |
