diff options
author | Ilia Alshanetsky <iliaa@php.net> | 2005-07-07 17:53:34 +0000 |
---|---|---|
committer | Ilia Alshanetsky <iliaa@php.net> | 2005-07-07 17:53:34 +0000 |
commit | e7b930ea9ac9810ec3f0686b6ca7993fb7708b71 (patch) | |
tree | 56163ee8aec2031adef7f1b41c817ed95cd15700 /ext/pdo_mysql/mysql_statement.c | |
parent | bcd201f522bd63d1aa9d075c399470137d90399b (diff) | |
download | php-git-e7b930ea9ac9810ec3f0686b6ca7993fb7708b71.tar.gz |
Make prepared statements obey buffering flag in MySQL.
Diffstat (limited to 'ext/pdo_mysql/mysql_statement.c')
-rwxr-xr-x | ext/pdo_mysql/mysql_statement.c | 10 |
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; |