summaryrefslogtreecommitdiff
path: root/ext/pdo_mysql/mysql_statement.c
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2005-07-07 17:53:34 +0000
committerIlia Alshanetsky <iliaa@php.net>2005-07-07 17:53:34 +0000
commite7b930ea9ac9810ec3f0686b6ca7993fb7708b71 (patch)
tree56163ee8aec2031adef7f1b41c817ed95cd15700 /ext/pdo_mysql/mysql_statement.c
parentbcd201f522bd63d1aa9d075c399470137d90399b (diff)
downloadphp-git-e7b930ea9ac9810ec3f0686b6ca7993fb7708b71.tar.gz
Make prepared statements obey buffering flag in MySQL.
Diffstat (limited to 'ext/pdo_mysql/mysql_statement.c')
-rwxr-xr-xext/pdo_mysql/mysql_statement.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/ext/pdo_mysql/mysql_statement.c b/ext/pdo_mysql/mysql_statement.c
index c59f53c8db..35cfa4639c 100755
--- a/ext/pdo_mysql/mysql_statement.c
+++ b/ext/pdo_mysql/mysql_statement.c
@@ -98,6 +98,10 @@ static int pdo_mysql_stmt_execute(pdo_stmt_t *stmt TSRMLS_DC)
S->fields = mysql_fetch_fields(S->result);
stmt->column_count = (int)mysql_num_fields(S->result);
+ if (H->buffered) {
+ mysql_stmt_store_result(S->stmt);
+ }
+
S->bound_result = ecalloc(stmt->column_count, sizeof(MYSQL_BIND));
S->out_null = ecalloc(stmt->column_count, sizeof(my_bool));
S->out_length = ecalloc(stmt->column_count, sizeof(unsigned long));
@@ -185,7 +189,11 @@ static int pdo_mysql_stmt_next_rowset(pdo_stmt_t *stmt TSRMLS_DC)
return 0;
} else {
row_count = mysql_affected_rows(H->server);
- S->result = mysql_use_result(H->server);
+ if (!H->buffered) {
+ S->result = mysql_use_result(H->server);
+ } else {
+ S->result = mysql_store_result(H->server);
+ }
if (NULL == S->result) {
return 0;