Bug #80837 [Opn->Csd]: Calling stmt_store_result after fetch doesn't throw an error
| From: | nikic@php.net | Date: | Mon, 15 Mar 2021 13:39:16 +0000 |
| Subject: | Bug #80837 [Opn->Csd]: Calling stmt_store_result after fetch doesn't throw an error | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-232729@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=80837&edit=1
ID: 80837
Updated by: nikic@php.net
Reported by: dharman@php.net
Summary: Calling stmt_store_result after fetch doesn't throw
an error
-Status: Open
+Status: Closed
Type: Bug
Package: MySQLi related
PHP Version: master-Git-2021-03-05 (Git)
Block user comment: N
Private report: N
New Comment:
Automatic comment on behalf of tekiela246@gmail.com
Revision: http://git.php.net/?p=php-src.git;a=commit;h=c93b461ad70e341f1b01f5910f3cfc3055a3941e
Log: Fix bug #80837
Previous Comments:
------------------------------------------------------------------------
[2021-03-05 22:01:19] dharman@php.net
The following pull request has been associated:
Patch Name: Fix bug #80837
On GitHub: https://github.com/php/php-src/pull/6755
Patch: https://github.com/php/php-src/pull/6755.patch
------------------------------------------------------------------------
[2021-03-05 21:35:33] dharman@php.net
Description:
------------
Calling stmt_store_result when in the middle of manual fetch cycle should throw an OOS error.
However, mysqlnd sets the error in conn property which means mysqli will not throw it.
Test script:
---------------
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli('localhost', 'user', 'password',
'test');
$mysqli->set_charset('utf8mb4'); // always set the charset
$statement = $mysqli->prepare("SELECT b FROM a");
$statement->execute();
$statement->bind_result($name);
$statement->fetch();
$statement->store_result();
var_dump($mysqli->error, $statement->error);
echo $statement->num_rows();
Expected result:
----------------
Fatal error: Uncaught mysqli_sql_exception: Commands out of sync; you can't run this command
now
Actual result:
--------------
string(52) "Commands out of sync; you can't run this command now"
string(0) ""
0
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=80837&edit=1