From 4b4dbd38d9db220e519a0722f0d852ecca19f2ab Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Wed, 28 Aug 2019 01:40:02 +0200 Subject: [PATCH] Fixing PHP Fatal Error for Database-Reconnects with PDO --- src/Database/Database.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Database/Database.php b/src/Database/Database.php index d3ec4d585a..d13b52848d 100644 --- a/src/Database/Database.php +++ b/src/Database/Database.php @@ -4,6 +4,7 @@ namespace Friendica\Database; use Friendica\Core\Config\Cache\ConfigCache; use Friendica\Core\System; +use Friendica\Network\HTTPException\InternalServerErrorException; use Friendica\Util\DateTimeFormat; use Friendica\Util\Profiler; use mysqli; @@ -126,7 +127,7 @@ class Database $this->connection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $this->connected = true; } catch (PDOException $e) { - /// @TODO At least log exception, don't ignore it! + $this->connected = false; } } @@ -484,6 +485,10 @@ class Database // We are having an own error logging in the function "e" $called_from_e = ($called_from['function'] == 'e'); + if (!isset($this->connection)) { + throw new InternalServerErrorException('The Connection is empty, although connected is set true.'); + } + switch ($this->driver) { case 'pdo': // If there are no arguments we use "query"