diff options
| author | Nathan Gibbs <nathan@cmpublishers.com> | 2023-06-12 09:43:06 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-06-12 15:43:06 +0200 |
| commit | 50db1018c3d2ac9ef73aeaf0bb545d606c88f7f3 (patch) | |
| tree | ccd27101069fc9562522a73a9649697e80d12271 | |
| parent | fc0093064d6eaf1862f3bf9ff2c75f3238903578 (diff) | |
| download | adodb-50db1018c3d2ac9ef73aeaf0bb545d606c88f7f3.tar.gz adodb-50db1018c3d2ac9ef73aeaf0bb545d606c88f7f3.tar.bz2 adodb-50db1018c3d2ac9ef73aeaf0bb545d606c88f7f3.zip | |
Respect @ operator in all error handlers on PHP 8
error_reporting()'s return value for suppressed errors changed from 0 to
4437 in PHP 8.0.0 [1].
Follow up on commit 943ac8a7de20117d85860a9b67f9eb65c5dfe4d7.
Fixes #981 (PR #984)
| -rw-r--r-- | adodb-errorhandler.inc.php | 9 | ||||
| -rw-r--r-- | adodb-errorpear.inc.php | 10 |
2 files changed, 17 insertions, 2 deletions
diff --git a/adodb-errorhandler.inc.php b/adodb-errorhandler.inc.php index 0cd3f218..1d3b9e9e 100644 --- a/adodb-errorhandler.inc.php +++ b/adodb-errorhandler.inc.php @@ -37,7 +37,14 @@ if (!defined('ADODB_ERROR_HANDLER')) define('ADODB_ERROR_HANDLER','ADODB_Error_H */ function ADODB_Error_Handler($dbms, $fn, $errno, $errmsg, $p1, $p2, &$thisConnection) { - if (error_reporting() == 0) return; // obey @ protocol + // Do not throw if errors are suppressed by @ operator + // error_reporting() value for suppressed errors changed in PHP 8.0.0 + $suppressed = version_compare(PHP_VERSION, '8.0.0', '<') + ? 0 + : E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR | E_RECOVERABLE_ERROR | E_PARSE; + if (error_reporting() == $suppressed) { + return; + } switch($fn) { case 'EXECUTE': $sql = $p1; diff --git a/adodb-errorpear.inc.php b/adodb-errorpear.inc.php index 2bb15947..7b173da8 100644 --- a/adodb-errorpear.inc.php +++ b/adodb-errorpear.inc.php @@ -52,7 +52,15 @@ function ADODB_Error_PEAR($dbms, $fn, $errno, $errmsg, $p1=false, $p2=false) { global $ADODB_Last_PEAR_Error; - if (error_reporting() == 0) return; // obey @ protocol + // Do not throw if errors are suppressed by @ operator + // error_reporting() value for suppressed errors changed in PHP 8.0.0 + $suppressed = version_compare(PHP_VERSION, '8.0.0', '<') + ? 0 + : E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR | E_RECOVERABLE_ERROR | E_PARSE; + if (error_reporting() == $suppressed) { + return; + } + switch($fn) { case 'EXECUTE': $sql = $p1; |
