summaryrefslogtreecommitdiff
path: root/ext/pdo_mysql/mysql_statement.c
diff options
context:
space:
mode:
authorWez Furlong <wez@php.net>2006-04-09 06:41:42 +0000
committerWez Furlong <wez@php.net>2006-04-09 06:41:42 +0000
commit0f4137fbd9359fa4e0af48ce4399f91a2bd72339 (patch)
tree46598843ad6ea5539b7dda6d7df4d81f3b10234b /ext/pdo_mysql/mysql_statement.c
parent9e5655387a6cfc5e0b22c2884e89aa627fcc41e4 (diff)
downloadphp-git-0f4137fbd9359fa4e0af48ce4399f91a2bd72339.tar.gz
fix for PECL Bug #5827.
We're responsible for gobbling up supplemental result sets in closeCursor() (which is what PDO does for us if we didn't implement our own closer routine).
Diffstat (limited to 'ext/pdo_mysql/mysql_statement.c')
-rwxr-xr-xext/pdo_mysql/mysql_statement.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/ext/pdo_mysql/mysql_statement.c b/ext/pdo_mysql/mysql_statement.c
index 846acd1938..9d861aee48 100755
--- a/ext/pdo_mysql/mysql_statement.c
+++ b/ext/pdo_mysql/mysql_statement.c
@@ -590,6 +590,16 @@ static int pdo_mysql_stmt_cursor_closer(pdo_stmt_t *stmt TSRMLS_DC)
mysql_free_result(S->result);
S->result = NULL;
}
+#if HAVE_MYSQL_NEXT_RESULT
+ while (mysql_more_results(S->H->server)) {
+ if (mysql_next_result(S->H->server) == 0) {
+ MYSQL_RES *res = mysql_store_result(S->H->server);
+ if (res) {
+ mysql_free_result(res);
+ }
+ }
+ }
+#endif
return 1;
}