diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-12-11 12:43:19 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-12-11 12:52:59 +0100 |
commit | ad8eb116d831035584e178bffb85d68c1ca3d7fa (patch) | |
tree | 07284aa065875a06c74279bd3b5d95ceb5b1233d /ext/pdo_mysql/mysql_statement.c | |
parent | d6b4b82a386402058c0eceaec31cfd7b5da765f8 (diff) | |
download | php-git-ad8eb116d831035584e178bffb85d68c1ca3d7fa.tar.gz |
Fixed bug #67004
Repeated execute() with native PS failed to release the previous
result set on libmysqlclient.
Move freeing the result set into a common location.
Diffstat (limited to 'ext/pdo_mysql/mysql_statement.c')
-rw-r--r-- | ext/pdo_mysql/mysql_statement.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/ext/pdo_mysql/mysql_statement.c b/ext/pdo_mysql/mysql_statement.c index 80d8747cd9..9a9249d42f 100644 --- a/ext/pdo_mysql/mysql_statement.c +++ b/ext/pdo_mysql/mysql_statement.c @@ -303,7 +303,6 @@ static int pdo_mysql_stmt_execute_prepared_mysqlnd(pdo_stmt_t *stmt) /* {{{ */ PDO_DBG_RETURN(0); } - pdo_mysql_free_result(S); PDO_DBG_RETURN(pdo_mysql_stmt_after_execute_prepared(stmt)); } /* }}} */ @@ -316,14 +315,14 @@ static int pdo_mysql_stmt_execute(pdo_stmt_t *stmt) /* {{{ */ PDO_DBG_ENTER("pdo_mysql_stmt_execute"); PDO_DBG_INF_FMT("stmt=%p", S->stmt); + /* ensure that we free any previous unfetched results */ + pdo_mysql_free_result(S); S->done = 0; + if (S->stmt) { PDO_DBG_RETURN(pdo_mysql_stmt_execute_prepared(stmt)); } - /* ensure that we free any previous unfetched results */ - pdo_mysql_free_result(S); - if (mysql_real_query(H->server, stmt->active_query_string, stmt->active_query_stringlen) != 0) { pdo_mysql_error_stmt(stmt); PDO_DBG_RETURN(0); |