History log of /PHP-8.0/ext/pdo_mysql/mysql_statement.c (Results 1 – 25 of 181)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: php-8.0.0, php-7.3.25, php-7.4.13, php-8.0.0RC5, php-7.4.13RC1, php-8.0.0RC4, php-7.3.25RC1, php-7.4.12, php-8.0.0RC3, php-7.3.24, php-8.0.0RC2, php-7.4.12RC1, php-7.3.24RC1, php-7.2.34, php-8.0.0rc1, php-7.4.11, php-7.3.23
# 51f57e7b 18-Sep-2020 Nikita Popov

PDO MySQL: Handle boolean parameter binding with libmysql

Previously boolean parameters were simply silently ignored...


# 205d209d 16-Dec-2020 Nikita Popov

PDO MySQL: Use mysqlnd column names

mysqlnd already creates interned zend_strings for us, so let's
make use of them.

This also required updating the PDO case changing code to wo

PDO MySQL: Use mysqlnd column names

mysqlnd already creates interned zend_strings for us, so let's
make use of them.

This also required updating the PDO case changing code to work
with potentially shared strings. For the lowercasing, use the
optimized zend_string_tolower() implementation.

show more ...


# ccb7f1c7 11-Dec-2020 Nikita Popov

Fixed bug #79132

Following cmb's suggestion and replacing the counter with a check
against the bound_params HT, which ensures that both cannot go
out of sync.


# 7a89157f 11-Dec-2020 Nikita Popov

PDO MySQL: Fix nextRowset() on libmysqlclient with native PS

The logic after next_result should match the one after execute.
This was the case for mysqlnd but not libmysqlclient, which u

PDO MySQL: Fix nextRowset() on libmysqlclient with native PS

The logic after next_result should match the one after execute.
This was the case for mysqlnd but not libmysqlclient, which used
the non-PS logic.

show more ...


# ad8eb116 11-Dec-2020 Nikita Popov

Fixed bug #67004

Repeated execute() with native PS failed to release the previous
result set on libmysqlclient.

Move freeing the result set into a common location.


# d6b4b82a 11-Dec-2020 Nikita Popov

PDO MySQL: Use stmt_next_result with libmysqlclient as well

libmysqlclient added this function in version 5.5, which happens
to be the minimum we support. If we have a prepared statement

PDO MySQL: Use stmt_next_result with libmysqlclient as well

libmysqlclient added this function in version 5.5, which happens
to be the minimum we support. If we have a prepared statement,
we should use it on both mysqlnd and libmysqlclient, even if the
handling afterwards is different.

This fixes error handling with native prepared statements.

show more ...


# c927c831 11-Dec-2020 Nikita Popov

PDO MySQL: Fix leak with libmysqlclient and multiple rowsets

stmt->column_count gets reset before the next_rowset handler is
invoked, so we need to fetch the value from the result set in

PDO MySQL: Fix leak with libmysqlclient and multiple rowsets

stmt->column_count gets reset before the next_rowset handler is
invoked, so we need to fetch the value from the result set instead.

Arguably PDO should be separating the destruction of the previous
result set and the switch to the next result set more cleanly...

show more ...


# f3d58778 09-Dec-2020 Nikita Popov

Backport fix for bug #70066

Given the number of duplicates this bug report had, it seems
worthwhile to fix this on PHP-7.4 as well.

Cherry-pick of 106e7e4bca7c0fd975eb219b18e3c3

Backport fix for bug #70066

Given the number of duplicates this bug report had, it seems
worthwhile to fix this on PHP-7.4 as well.

Cherry-pick of 106e7e4bca7c0fd975eb219b18e3c34957ba8657.

show more ...


# 106e7e4b 09-Dec-2020 Nikita Popov

Fixed bug #70066

If we fall back to emulated prepared statements, destroy S->stmt,
so the code doesn't get confused about which mode we're in.


# fcfa7fd0 09-Dec-2020 Nikita Popov

Fixed bug #66878

Keep track of whether we have fully consumed all result sets,
either using nextRowset() calls or closeCursor() and skip the
attempt to consume remaining results sets

Fixed bug #66878

Keep track of whether we have fully consumed all result sets,
either using nextRowset() calls or closeCursor() and skip the
attempt to consume remaining results sets during destruction in
that case.

Especiall if closeCursor() has been used, we really shouldn't
have this sort of cross-statement inference.

show more ...


# ef342b07 09-Dec-2020 Nikita Popov

Remove unnecessary more_results() checks

Just calling next_result() is sufficient.


# a073b021 09-Dec-2020 Nikita Popov

Add ifdef for mysqlnd only function


# b9ea8d6b 09-Dec-2020 Nikita Popov

PDO MySQL: Extract common code for handling PS results


# fb69c775 09-Dec-2020 Nikita Popov

PDO MySQL: Use set_row_count() helper


# 186b7663 09-Dec-2020 Nikita Popov

PDO MySQL: Make sure nextRowset() works with partially consumed result

This was already working in all cases apart from native prepared
statements with unbuffered queries. In that case i

PDO MySQL: Make sure nextRowset() works with partially consumed result

This was already working in all cases apart from native prepared
statements with unbuffered queries. In that case invoking
stmt_free_result() addresses the issue.

show more ...


# 23193e89 09-Dec-2020 Nikita Popov

PDO MySQL: Handle error during closeCursor()


# 18517e7a 09-Dec-2020 Nikita Popov

Fix stmt_free_result implementation and usage

Two bugs both affecting the bug_pecl_7976.phpt test ("works with
mysqlnd" haha):

* We should not change the connection state in st

Fix stmt_free_result implementation and usage

Two bugs both affecting the bug_pecl_7976.phpt test ("works with
mysqlnd" haha):

* We should not change the connection state in stmt_free_result.
This makes mysql_stmt_free_result usable under mysqlnd and
not just libmysqlclient.
* If we call mysql_stmt_free_result, we still need to consume
any outstanding result sets.

show more ...


# 2df09b9b 08-Dec-2020 Nikita Popov

PDO MySQL: Normalize handling of empty stored procedure result set

MySQL always returns a trailing empty result set for stored
procedure calls, which is used to convey status information

PDO MySQL: Normalize handling of empty stored procedure result set

MySQL always returns a trailing empty result set for stored
procedure calls, which is used to convey status information.
The PDO MySQL implementation is presently confused about what to
do with it: If mysqlnd is used and native prepared statements are
used, this result set is skipped. In all other cases it is not
skipped. We also have quite a few XFAILed tests relating to this.

This patch normalizes (for PHP-8.0 only) the behavior towards
always retaining the empty result set. This is simply how MySQL
stored procedures work (some expletives omitted here) and we can't
distinguish this "useless" result set from an empty result of a
multi query. Multi queries are not a concern for native prepared
statements, as PDO does not allow them in that case, but they are
a concern for emulated prepared statements.

Closes GH-6497.

show more ...


# bfa69d27 08-Dec-2020 Nikita Popov

Handle column count change in PDO MySQL

This has been fixed for PDO SQlite by GH-4313, however the same
issue also applied to PDO MySQL.

Move the column count setting function i

Handle column count change in PDO MySQL

This has been fixed for PDO SQlite by GH-4313, however the same
issue also applied to PDO MySQL.

Move the column count setting function into the main PDO layer
(and export it) and then use it in both PDO SQLite and PDO MySQL.

show more ...


# bd093ad8 08-Dec-2020 Nikita Popov

Fixed bug #63185


# a83cc03c 02-Dec-2020 Dharman

Fixed bug #80458

If there is no result set (e.g. for upsert queries), still allow
fetching to occur without error, i.e. treat it the same way as
an empty result set.

This no

Fixed bug #80458

If there is no result set (e.g. for upsert queries), still allow
fetching to occur without error, i.e. treat it the same way as
an empty result set.

This normalizes behavior between native and emulated prepared
statements and addresses a regression in PHP 7.4.13.

show more ...


# 0044a81f 29-Oct-2020 Nikita Popov

Handle errors during PDO row fetch

The EOF flag also gets set on error, so we always end up ignoring
errors here.

However, we should only check errors for unbuffered results. Fo

Handle errors during PDO row fetch

The EOF flag also gets set on error, so we always end up ignoring
errors here.

However, we should only check errors for unbuffered results. For
buffered results, this function is guaranteed not to error, and
querying the errno may return an unrelated error.

show more ...


# b03776ad 20-Sep-2020 Dharman

Fix bug #79375

Make sure deadlock errors are properly propagated and reports in
a number of places in mysqli and PDO MySQL.

This also fixes a memory and a segfault that can occu

Fix bug #79375

Make sure deadlock errors are properly propagated and reports in
a number of places in mysqli and PDO MySQL.

This also fixes a memory and a segfault that can occur under these
conditions.

show more ...


Revision tags: php-8.0.0beta4, php-7.4.11RC1, php-7.3.23RC1, php-8.0.0beta3, php-7.4.10, php-7.3.22, php-8.0.0beta2, php-7.3.22RC1, php-7.4.10RC1, php-8.0.0beta1, php-7.4.9, php-7.2.33, php-7.3.21, php-8.0.0alpha3, php-7.4.9RC1, php-7.3.21RC1, php-7.4.8, php-7.2.32, php-8.0.0alpha2, php-7.3.20, php-8.0.0alpha1, php-7.4.8RC1, php-7.3.20RC1, php-7.4.7, php-7.3.19, php-7.4.7RC1, php-7.3.19RC1
# c932cc84 20-May-2020 George Peter Banyard

Fix [-Wundef] warning in PDO MySQL extension


Revision tags: php-7.4.6, php-7.2.31, php-7.4.6RC1, php-7.3.18RC1, php-7.2.30, php-7.4.5, php-7.3.17, php-7.4.5RC1, php-7.3.17RC1, php-7.3.18, php-7.4.4, php-7.2.29, php-7.3.16, php-7.4.4RC1, php-7.3.16RC1, php-7.4.3, php-7.2.28, php-7.3.15RC1, php-7.4.3RC1, php-7.3.15, php-7.2.27, php-7.4.2, php-7.3.14, php-7.3.14RC1, php-7.4.2RC1, php-7.4.1, php-7.2.26, php-7.3.13, php-7.4.1RC1, php-7.3.13RC1, php-7.2.26RC1, php-7.4.0, php-7.2.25, php-7.3.12, php-7.4.0RC6, php-7.3.12RC1, php-7.2.25RC1, php-7.4.0RC5, php-7.1.33, php-7.2.24, php-7.3.11, php-7.4.0RC4, php-7.3.11RC1, php-7.2.24RC1
# 114c03b9 07-Oct-2019 Christoph M. Becker

Fix #78623: Regression caused by "SP call yields additional empty result set"

This reverts commit 41a4379cb45419a376043ca5f8c5a2bca82cea7c.


12345678