summaryrefslogtreecommitdiff
path: root/ext/mysqli/mysqli_api.c
diff options
context:
space:
mode:
authorAndrey Hristov <andrey@php.net>2014-01-29 15:32:02 +0200
committerAndrey Hristov <andrey@php.net>2014-01-29 15:32:02 +0200
commit1c7f54d4f7fe58f1d2c7ed00ca80d93dddc265ab (patch)
treeb981a37d3072a193d0fe9791fc75d3b3b83208f2 /ext/mysqli/mysqli_api.c
parentfb5c7cda5d776a84730c5133f27e72cb427f22ae (diff)
parent253a66c8d56e72b166b2d8ebfbc4b368eed4a9fb (diff)
downloadphp-git-1c7f54d4f7fe58f1d2c7ed00ca80d93dddc265ab.tar.gz
Merge branch 'PHP-5.6'
Conflicts: NEWS ext/openssl/xp_ssl.c
Diffstat (limited to 'ext/mysqli/mysqli_api.c')
-rw-r--r--ext/mysqli/mysqli_api.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c
index 9028401595..d6f274b569 100644
--- a/ext/mysqli/mysqli_api.c
+++ b/ext/mysqli/mysqli_api.c
@@ -599,10 +599,20 @@ void php_mysqli_close(MY_MYSQL * mysql, int close_type, int resource_status TSRM
#if defined(MYSQLI_USE_MYSQLND)
mysqlnd_end_psession(mysql->mysql);
#endif
- zend_ptr_stack_push(&plist->free_links, mysql->mysql);
+ if (MyG(rollback_on_cached_plink) &&
+#if !defined(MYSQLI_USE_MYSQLND)
+ mysqli_commit_or_rollback_libmysql(mysql->mysql, FALSE, TRANS_COR_NO_OPT, NULL))
+#else
+ FAIL == mysqlnd_rollback(mysql->mysql, TRANS_COR_NO_OPT, NULL))
+#endif
+ {
+ mysqli_close(mysql->mysql, close_type);
+ } else {
+ zend_ptr_stack_push(&plist->free_links, mysql->mysql);
+ MyG(num_inactive_persistent)++;
+ }
MyG(num_active_persistent)--;
- MyG(num_inactive_persistent)++;
}
}
mysql->persistent = FALSE;