summaryrefslogtreecommitdiff
path: root/ext/mssql/php_mssql.c
diff options
context:
space:
mode:
authorFrank M. Kromann <fmk@php.net>2006-04-04 18:49:12 +0000
committerFrank M. Kromann <fmk@php.net>2006-04-04 18:49:12 +0000
commit5ccfa591b7bca84e0509c4a52c6e20256941e426 (patch)
treeb96cb04f6573c3269eccd20a2a7d399c365f4b3b /ext/mssql/php_mssql.c
parent0f510a6a9543988e690f54cb32744157a0f48bf1 (diff)
downloadphp-git-5ccfa591b7bca84e0509c4a52c6e20256941e426.tar.gz
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 4e01459d05..cce69ad92f 100644
--- a/ext/mssql/php_mssql.c
+++ b/ext/mssql/php_mssql.c
@@ -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;
}
@@ -2172,6 +2175,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;
}
@@ -2179,6 +2183,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;
}