summaryrefslogtreecommitdiff
path: root/ext/pdo_mysql/mysql_statement.c
diff options
context:
space:
mode:
authorMark A. Hershberger <mah@debian.(none)>2009-03-25 00:35:28 -0400
committerMark A. Hershberger <mah@debian.(none)>2009-03-25 00:35:28 -0400
commitba50031707469046407a35b77a3cd81351e951b3 (patch)
tree5c03e723bdbfabae09d41a3ab1253dff41eeed4a /ext/pdo_mysql/mysql_statement.c
parent0a36161e13484a99ccf69bb38f206462d27cc6d6 (diff)
downloadphp-ba50031707469046407a35b77a3cd81351e951b3.tar.gz
Imported Upstream version 5.1.5upstream/5.1.5
Diffstat (limited to 'ext/pdo_mysql/mysql_statement.c')
-rwxr-xr-xext/pdo_mysql/mysql_statement.c33
1 files changed, 28 insertions, 5 deletions
diff --git a/ext/pdo_mysql/mysql_statement.c b/ext/pdo_mysql/mysql_statement.c
index 5218e7b7f..7675e1ee7 100755
--- a/ext/pdo_mysql/mysql_statement.c
+++ b/ext/pdo_mysql/mysql_statement.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mysql_statement.c,v 1.48.2.10 2006/01/01 12:50:11 sniper Exp $ */
+/* $Id: mysql_statement.c,v 1.48.2.14 2006/04/22 16:35:18 wez Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -67,12 +67,23 @@ static int pdo_mysql_stmt_dtor(pdo_stmt_t *stmt TSRMLS_DC)
efree(S->out_length);
}
#endif
+#if HAVE_MYSQL_NEXT_RESULT
+ while (mysql_more_results(S->H->server)) {
+ MYSQL_RES *res;
+ if (mysql_next_result(S->H->server) != 0) {
+ break;
+ }
+
+ res = mysql_store_result(S->H->server);
+ if (res) {
+ mysql_free_result(res);
+ }
+ }
+#endif
efree(S);
return 1;
}
-#define PDO_MYSQL_MAX_BUFFER 1024*1024 /* 1 megabyte */
-
static int pdo_mysql_stmt_execute(pdo_stmt_t *stmt TSRMLS_DC)
{
pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data;
@@ -144,8 +155,8 @@ static int pdo_mysql_stmt_execute(pdo_stmt_t *stmt TSRMLS_DC)
S->fields[i].max_length? S->fields[i].max_length:
S->fields[i].length;
/* work-around for longtext and alike */
- if (S->bound_result[i].buffer_length > PDO_MYSQL_MAX_BUFFER) {
- S->bound_result[i].buffer_length = PDO_MYSQL_MAX_BUFFER;
+ if (S->bound_result[i].buffer_length > H->max_buffer_size) {
+ S->bound_result[i].buffer_length = H->max_buffer_size;
}
}
#if 0
@@ -592,6 +603,18 @@ 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)) {
+ MYSQL_RES *res;
+ if (mysql_next_result(S->H->server) != 0) {
+ break;
+ }
+ res = mysql_store_result(S->H->server);
+ if (res) {
+ mysql_free_result(res);
+ }
+ }
+#endif
return 1;
}