Bug #80257 [Opn]: variable in the prepared statement not refreshed when multiple call
Edit report at https://bugs.php.net/bug.php?id=80257&edit=1
ID: 80257
User updated by: webmaster at seobytes dot eu
Reported by: webmaster at seobytes dot eu
Summary: variable in the prepared statement not refreshed
when multiple call
Status: Open
Type: Bug
Package: MySQLi related
Operating System: Linux/windows
PHP Version: 7.3.23
Block user comment: N
Private report: N
New Comment:
"even though the string is correctly passed." I know the string with the product_sku is
correctly passed as the corresponding row is edited with the incorrect date
Previous Comments:
------------------------------------------------------------------------
[2020-10-19 13:05:06] webmaster at seobytes dot eu
Description:
------------
When executing a prepared statement to UPDATE a date in some row, then unsetting the variable and
then executing the prepared statement again, redeclaring the variable and setting a new date to
UPDATE a different ROW, the date written in the database does not change compare with the first
execution despite the variable displaying the proper value just ahead of execution, although
execution to UPDATE a date in a loop does not cause any issue.
Tested on windows server and Linux server. PHP 7.2 and 7.3
Test script:
---------------
$conn = new mysqli($servername, $username, $password, $db);
$stmt=$conn->prepare("UPDATE _products SET product_available_date=? WHERE
product_sku=?");
$stmt->bind_param("ss", $product_available_date,$product_sku);
$product_available_date='2020-10-19';
$product_sku='some_value';
$stmt->execute();
unset($product_available_date);
$product_available_date = '2020-12-10';
$product_sku=mysqli_real_escape_string($conn,'someother_value');
echo $product_sku.' '.$product_available_date.'<br>';
$stmt->execute();
$stmt->close();
$conn->close();
Expected result:
----------------
I expect that the value for the variable to be updated in the bind statement as it correctly happen
within a loop without the need to close the first statement after execution and redeclaring the
prepared statement.
Actual result:
--------------
When written on two lines, and even when unsetting the date, the new value for the date is not
passed on to the prepared statement event though the string is correctly passed.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=80257&edit=1
Thread (4 messages)