From: Christoph M. Becker Date: Tue, 6 Aug 2019 12:30:41 +0000 (+0200) Subject: Fix #41997: SP call yields additional empty result set X-Git-Tag: php-7.3.10RC1~6^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=41a4379cb45419a376043ca5f8c5a2bca82cea7c;p=php 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. --- diff --git a/NEWS b/NEWS index 8ededb077d..2580bda506 100644 --- a/NEWS +++ b/NEWS @@ -18,6 +18,9 @@ PHP NEWS - ODBC: . Fixed bug #78473 (odbc_close() closes arbitrary resources). (cmb) +- PDO_MySQL: + . Fixed bug #41997 (SP call yields additional empty result set). (cmb) + 29 Aug 2019, PHP 7.2.22 - Core: 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 } diff --git a/ext/pdo_mysql/tests/bug_39858.phpt b/ext/pdo_mysql/tests/bug_39858.phpt index 896519f8ab..aaf0f3e9f9 100644 --- a/ext/pdo_mysql/tests/bug_39858.phpt +++ b/ext/pdo_mysql/tests/bug_39858.phpt @@ -18,8 +18,6 @@ if ($version < 50000) die(sprintf("skip Need MySQL Server 5.0.0+, found %d.%02d.%02d (%d)\n", $matches[0], $matches[1], $matches[2], $version)); ?> ---XFAIL-- -nextRowset() problem with stored proc & emulation mode & mysqlnd --FILE--