summaryrefslogtreecommitdiff
path: root/adodb-errorpear.inc.php
diff options
context:
space:
mode:
authorNathan Gibbs <nathan@cmpublishers.com>2023-06-12 09:43:06 -0400
committerGitHub <noreply@github.com>2023-06-12 15:43:06 +0200
commit50db1018c3d2ac9ef73aeaf0bb545d606c88f7f3 (patch)
treeccd27101069fc9562522a73a9649697e80d12271 /adodb-errorpear.inc.php
parentfc0093064d6eaf1862f3bf9ff2c75f3238903578 (diff)
downloadadodb-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)
Diffstat (limited to 'adodb-errorpear.inc.php')
-rw-r--r--adodb-errorpear.inc.php10
1 files changed, 9 insertions, 1 deletions
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;