From dcb07505874491e532595f86c358440bc3da962d Mon Sep 17 00:00:00 2001 From: Roguyt Date: Thu, 7 Jul 2022 17:24:06 +0200 Subject: [PATCH] Fix #19454: Fix PDO exception code not properly passed to `yii\db\Exception` --- framework/CHANGELOG.md | 1 + framework/db/Command.php | 4 ++-- framework/db/Connection.php | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/framework/CHANGELOG.md b/framework/CHANGELOG.md index 07ee7c4c79..0917bfba92 100644 --- a/framework/CHANGELOG.md +++ b/framework/CHANGELOG.md @@ -37,6 +37,7 @@ Yii Framework 2 Change Log - Bug #19400: Fix passing null in `yii\web\Response::redirect()` (bizley) - Enh #19437: Add support to specify request port by trusted proxies in `\yii\web\Request::getServerPort()` (rhertogh) - Bug #19445: Fix caching in `yii\i18n\Formatter::getUnitMessage()` (WinterSilence) +- Bug #19454: Fix PDO exception code not properly passed to `yii\db\Exception` (Roguyt) 2.0.45 February 11, 2022 diff --git a/framework/db/Command.php b/framework/db/Command.php index b99deb497b..ac9b1cb442 100644 --- a/framework/db/Command.php +++ b/framework/db/Command.php @@ -269,10 +269,10 @@ class Command extends Component } catch (\Exception $e) { $message = $e->getMessage() . "\nFailed to prepare SQL: $sql"; $errorInfo = $e instanceof \PDOException ? $e->errorInfo : null; - throw new Exception($message, $errorInfo, (int) $e->getCode(), $e); + throw new Exception($message, $errorInfo, $e->getCode(), $e); } catch (\Throwable $e) { $message = $e->getMessage() . "\nFailed to prepare SQL: $sql"; - throw new Exception($message, null, (int) $e->getCode(), $e); + throw new Exception($message, null, $e->getCode(), $e); } } diff --git a/framework/db/Connection.php b/framework/db/Connection.php index a6f81ff658..660e441516 100644 --- a/framework/db/Connection.php +++ b/framework/db/Connection.php @@ -644,7 +644,7 @@ class Connection extends Component Yii::endProfile($token, __METHOD__); } - throw new Exception($e->getMessage(), $e->errorInfo, (int) $e->getCode(), $e); + throw new Exception($e->getMessage(), $e->errorInfo, $e->getCode(), $e); } }