]> 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:50:16 +0000 (18:50 +0000)
committerFrank M. Kromann <fmk@php.net>
Tue, 4 Apr 2006 18:50:16 +0000 (18:50 +0000)
ext/mssql/php_mssql.c

index b780b31bb3d8568cd8c8eb7c0ff4c7e6bf92a3a1..eea62134ff59ed34b26b28566e3745ffb95fc60e 100644 (file)
@@ -222,6 +222,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);
 }
 
@@ -1230,6 +1231,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;
        }
        
@@ -1244,6 +1246,7 @@ PHP_FUNCTION(mssql_query)
 
        retvalue=dbnextrow(mssql_ptr->link);    
        if (retvalue==FAIL) {
+               dbcancel(mssql_ptr->link);
                RETURN_FALSE;
        }
 
@@ -2182,6 +2185,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;
        }
 
@@ -2189,6 +2193,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;
        }