diff --git a/src/Dibi/Drivers/MySqliDriver.php b/src/Dibi/Drivers/MySqliDriver.php index 45bc275f..e2bb8f2f 100644 --- a/src/Dibi/Drivers/MySqliDriver.php +++ b/src/Dibi/Drivers/MySqliDriver.php @@ -253,7 +253,11 @@ public function rollback(?string $savepoint = null): void */ public function getResource(): ?\mysqli { - return @$this->connection->thread_id ? $this->connection : null; + try { + return @$this->connection->thread_id ? $this->connection : null; + } catch (\Throwable $e) { + return null; + } } diff --git a/tests/dibi/Connection.connect.phpt b/tests/dibi/Connection.connect.phpt index fbc7501a..bfcc4e7a 100644 --- a/tests/dibi/Connection.connect.phpt +++ b/tests/dibi/Connection.connect.phpt @@ -63,6 +63,15 @@ test('', function () use ($config) { }); +test('', function () use ($config) { + $conn = new Connection($config); + Assert::true($conn->isConnected()); + + $conn->__destruct(); + Assert::false($conn->isConnected()); +}); + + test('', function () use ($config) { Assert::exception(function () use ($config) { new Connection($config + ['onConnect' => '']);