Skip to content

Honor ERRMODE_SILENT in pdo_raise_impl_error - #23070

Open
iliaal wants to merge 1 commit into
php:masterfrom
iliaal:fix/pdo-silent-impl-error-master
Open

Honor ERRMODE_SILENT in pdo_raise_impl_error#23070
iliaal wants to merge 1 commit into
php:masterfrom
iliaal:fix/pdo-silent-impl-error-master

Conversation

@iliaal

@iliaal iliaal commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

ERRMODE_SILENT is documented to record the error without raising anything, but pdo_raise_impl_error falls through to php_error_docref for every mode except EXCEPTION, so $pdo->getAttribute(123456) warns under SILENT. The early return is there, disabled behind #if 0, because returning ahead of the memcpy left errorInfo() reporting the previous SQLSTATE. Copying the code first and returning after it drops the warning and keeps errorInfo() accurate. GH-12032 reported the same behaviour, and the suggestion there was that changing it may want internals discussion, so this targets master rather than a stable branch.

pdo_raise_impl_error stored the SQLSTATE then still emitted E_WARNING
even when the handle error mode was SILENT. The early return for SILENT
was present but disabled (#if 0). Copy the error code first so
errorInfo() remains valid, then return without warning.

Closes phpGH-23070
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant