summaryrefslogtreecommitdiff
path: root/ext/mssql/php_mssql.c
diff options
context:
space:
mode:
authorFrank M. Kromann <fmk@php.net>2006-04-04 18:50:16 +0000
committerFrank M. Kromann <fmk@php.net>2006-04-04 18:50:16 +0000
commit018dc1e52ea062aa1d39445e1de543f745db65f1 (patch)
tree39a2a928e563079e5f517ddb5456d032ff0974a0 /ext/mssql/php_mssql.c
parent67fdeb1067dc0eae318fc45d0959b429779465fa (diff)
downloadphp-git-018dc1e52ea062aa1d39445e1de543f745db65f1.tar.gz
MFP51: Fix #33694 invalid sql or timeouts makes it impossible to reuse persistent connections
Diffstat (limited to 'ext/mssql/php_mssql.c')
-rw-r--r--ext/mssql/php_mssql.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/ext/mssql/php_mssql.c b/ext/mssql/php_mssql.c
index b780b31bb3..eea62134ff 100644
--- a/ext/mssql/php_mssql.c
+++ b/ext/mssql/php_mssql.c
@@ -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;
}