From: Ilia Alshanetsky Date: Thu, 7 Jul 2005 17:53:34 +0000 (+0000) Subject: Make prepared statements obey buffering flag in MySQL. X-Git-Tag: php-5.1.0b3~113 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e7b930ea9ac9810ec3f0686b6ca7993fb7708b71;p=php Make prepared statements obey buffering flag in MySQL. --- 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;