summaryrefslogtreecommitdiff
path: root/ext/pdo_mysql/mysql_statement.c
diff options
context:
space:
mode:
authorChristoph M. Becker <cmbecker69@gmx.de>2019-08-06 14:30:41 +0200
committerChristoph M. Becker <cmbecker69@gmx.de>2019-09-03 13:29:30 +0200
commit41a4379cb45419a376043ca5f8c5a2bca82cea7c (patch)
tree38229682092ef6422dbcbfb28838c7ffc7d56bf4 /ext/pdo_mysql/mysql_statement.c
parent9c3b7ccda5e3737c779e019eb1468213edaa2e39 (diff)
downloadphp-git-41a4379cb45419a376043ca5f8c5a2bca82cea7c.tar.gz
Fix #41997: SP call yields additional empty result set
When stored procedures are called, the "final result set is a status result that includes no result set". Calling `::nextRowset()` on the actual last result set should return FALSE, since there is actually no further result set to be processed.
Diffstat (limited to 'ext/pdo_mysql/mysql_statement.c')
-rw-r--r--ext/pdo_mysql/mysql_statement.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ext/pdo_mysql/mysql_statement.c b/ext/pdo_mysql/mysql_statement.c
index e230cfbf05..950aa64f07 100644
--- a/ext/pdo_mysql/mysql_statement.c
+++ b/ext/pdo_mysql/mysql_statement.c
@@ -425,14 +425,14 @@ static int pdo_mysql_stmt_next_rowset(pdo_stmt_t *stmt) /* {{{ */
pdo_mysql_error_stmt(stmt);
PDO_DBG_RETURN(0);
} else {
- PDO_DBG_RETURN(pdo_mysql_fill_stmt_from_result(stmt));
+ PDO_DBG_RETURN(pdo_mysql_fill_stmt_from_result(stmt) && stmt->row_count);
}
#else
if (mysql_next_result(H->server) > 0) {
pdo_mysql_error_stmt(stmt);
PDO_DBG_RETURN(0);
} else {
- PDO_DBG_RETURN(pdo_mysql_fill_stmt_from_result(stmt));
+ PDO_DBG_RETURN(pdo_mysql_fill_stmt_from_result(stmt) && stmt->row_count);
}
#endif
}