diff options
author | Christoph M. Becker <cmbecker69@gmx.de> | 2019-08-06 14:30:41 +0200 |
---|---|---|
committer | Christoph M. Becker <cmbecker69@gmx.de> | 2019-09-03 13:29:30 +0200 |
commit | 41a4379cb45419a376043ca5f8c5a2bca82cea7c (patch) | |
tree | 38229682092ef6422dbcbfb28838c7ffc7d56bf4 /ext/pdo_mysql/mysql_statement.c | |
parent | 9c3b7ccda5e3737c779e019eb1468213edaa2e39 (diff) | |
download | php-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.c | 4 |
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 } |