diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-12-04 17:00:20 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-12-04 17:00:51 +0100 |
commit | 9dc42b411433f25d37bb4c03ae1270fef8c0d062 (patch) | |
tree | d7724ca80ce3c36ec7dba41106e69541a815f845 /ext/pdo_mysql/mysql_statement.c | |
parent | b52db133df94320978d4610d44e82aa66ca600a6 (diff) | |
parent | a83cc03c138b8cf27a840bd7cd913eb7050e55ba (diff) | |
download | php-git-9dc42b411433f25d37bb4c03ae1270fef8c0d062.tar.gz |
Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
Fixed bug #80458
Diffstat (limited to 'ext/pdo_mysql/mysql_statement.c')
-rw-r--r-- | ext/pdo_mysql/mysql_statement.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/ext/pdo_mysql/mysql_statement.c b/ext/pdo_mysql/mysql_statement.c index 00a2583cdf..616c5bf9c4 100644 --- a/ext/pdo_mysql/mysql_statement.c +++ b/ext/pdo_mysql/mysql_statement.c @@ -619,6 +619,11 @@ static int pdo_mysql_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_da static int pdo_mysql_stmt_fetch(pdo_stmt_t *stmt, enum pdo_fetch_orientation ori, zend_long offset) /* {{{ */ { pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data; + + if (!S->result) { + PDO_DBG_RETURN(0); + } + #ifdef PDO_USE_MYSQLND zend_bool fetched_anything; @@ -632,6 +637,10 @@ static int pdo_mysql_stmt_fetch(pdo_stmt_t *stmt, enum pdo_fetch_orientation ori PDO_DBG_RETURN(1); } + + if (!S->stmt && S->current_data) { + mnd_free(S->current_data); + } #else int ret; @@ -655,16 +664,6 @@ static int pdo_mysql_stmt_fetch(pdo_stmt_t *stmt, enum pdo_fetch_orientation ori } #endif /* PDO_USE_MYSQLND */ - if (!S->result) { - strcpy(stmt->error_code, "HY000"); - PDO_DBG_RETURN(0); - } -#ifdef PDO_USE_MYSQLND - if (!S->stmt && S->current_data) { - mnd_free(S->current_data); - } -#endif /* PDO_USE_MYSQLND */ - if ((S->current_data = mysql_fetch_row(S->result)) == NULL) { if (!S->H->buffered && mysql_errno(S->H->server)) { pdo_mysql_error_stmt(stmt); |