From 77afd1393e461a20d6d04c07dea0756e792636d5 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 5 Oct 2019 15:48:03 +0200 Subject: Add optional database connection URI parameters (#2552) #fix https://github.com/FreshRSS/FreshRSS/issues/2549 --- lib/Minz/ModelPdo.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'lib/Minz/ModelPdo.php') diff --git a/lib/Minz/ModelPdo.php b/lib/Minz/ModelPdo.php index 873fa21ff..0a918e887 100644 --- a/lib/Minz/ModelPdo.php +++ b/lib/Minz/ModelPdo.php @@ -47,6 +47,7 @@ class Minz_ModelPdo { $driver_options = isset($db['pdo_options']) && is_array($db['pdo_options']) ? $db['pdo_options'] : []; $dbServer = parse_url('db://' . $db['host']); $dsn = ''; + $dsnParams = empty($db['connection_uri_params']) ? '' : (';' . $db['connection_uri_params']); try { switch ($db['type']) { @@ -59,12 +60,12 @@ class Minz_ModelPdo { $dsn .= ';port=' . $dbServer['port']; } $driver_options[PDO::MYSQL_ATTR_INIT_COMMAND] = 'SET NAMES utf8mb4'; - $this->pdo = new MinzPDOMySql($dsn, $db['user'], $db['password'], $driver_options); + $this->pdo = new MinzPDOMySql($dsn . $dsnParams, $db['user'], $db['password'], $driver_options); $this->pdo->setPrefix($db['prefix'] . $currentUser . '_'); break; case 'sqlite': $dsn = 'sqlite:' . join_path(DATA_PATH, 'users', $currentUser, 'db.sqlite'); - $this->pdo = new MinzPDOSQLite($dsn, $db['user'], $db['password'], $driver_options); + $this->pdo = new MinzPDOSQLite($dsn . $dsnParams, $db['user'], $db['password'], $driver_options); $this->pdo->setPrefix(''); break; case 'pgsql': @@ -75,7 +76,7 @@ class Minz_ModelPdo { if (!empty($dbServer['port'])) { $dsn .= ';port=' . $dbServer['port']; } - $this->pdo = new MinzPDOPGSQL($dsn, $db['user'], $db['password'], $driver_options); + $this->pdo = new MinzPDOPGSQL($dsn . $dsnParams, $db['user'], $db['password'], $driver_options); $this->pdo->setPrefix($db['prefix'] . $currentUser . '_'); break; default: -- cgit v1.2.3