summaryrefslogtreecommitdiff
path: root/ext/pdo_mysql/mysql_statement.c
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-12-04 17:00:20 +0100
committerNikita Popov <nikita.ppv@gmail.com>2020-12-04 17:00:51 +0100
commit9dc42b411433f25d37bb4c03ae1270fef8c0d062 (patch)
treed7724ca80ce3c36ec7dba41106e69541a815f845 /ext/pdo_mysql/mysql_statement.c
parentb52db133df94320978d4610d44e82aa66ca600a6 (diff)
parenta83cc03c138b8cf27a840bd7cd913eb7050e55ba (diff)
downloadphp-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.c19
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);