]> granicus.if.org Git - php/commitdiff
MFP51: Fix #33694 invalid sql or timeouts makes it impossible to reuse persistent...
authorFrank M. Kromann <fmk@php.net>
Tue, 4 Apr 2006 18:49:44 +0000 (18:49 +0000)
committerFrank M. Kromann <fmk@php.net>
Tue, 4 Apr 2006 18:49:44 +0000 (18:49 +0000)
ext/mssql/php_mssql.c

index 0044a196086d902f677cd14e9d459508cb5f0d39..9e4df4ce302d555f8ebed7cd7eb93bafdbddbe78 100644 (file)
@@ -229,6 +229,7 @@ static void _free_mssql_result(zend_rsrc_list_entry *rsrc TSRMLS_DC)
        mssql_result *result = (mssql_result *)rsrc->ptr;
 
        _free_result(result, 1);
+       dbcancel(result->mssql_ptr->link);
        efree(result);
 }
 
@@ -1233,6 +1234,7 @@ PHP_FUNCTION(mssql_query)
        }
        if (dbsqlexec(mssql_ptr->link)==FAIL || (retvalue = dbresults(mssql_ptr->link))==FAIL) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Query failed");
+               dbcancel(mssql_ptr->link);
                RETURN_FALSE;
        }
        
@@ -1247,6 +1249,7 @@ PHP_FUNCTION(mssql_query)
 
        retvalue=dbnextrow(mssql_ptr->link);    
        if (retvalue==FAIL) {
+               dbcancel(mssql_ptr->link);
                RETURN_FALSE;
        }
 
@@ -2165,6 +2168,7 @@ PHP_FUNCTION(mssql_execute)
 
        if (dbrpcexec(mssql_ptr->link)==FAIL || dbsqlok(mssql_ptr->link)==FAIL) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "stored procedure execution failed");
+               dbcancel(mssql_ptr->link);
                RETURN_FALSE;
        }
 
@@ -2172,6 +2176,7 @@ PHP_FUNCTION(mssql_execute)
 
        if (retval_results==FAIL) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "could not retrieve results");
+               dbcancel(mssql_ptr->link);
                RETURN_FALSE;
        }