aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2019-10-05 15:48:03 +0200
committerGravatar GitHub <noreply@github.com> 2019-10-05 15:48:03 +0200
commit77afd1393e461a20d6d04c07dea0756e792636d5 (patch)
treee0d0f90288cd505edca30332f2f35a87c262aa50 /lib
parent38932ee3bb3ccd41c0e2d79329e2d77fb5995256 (diff)
Add optional database connection URI parameters (#2552)
#fix https://github.com/FreshRSS/FreshRSS/issues/2549
Diffstat (limited to 'lib')
-rw-r--r--lib/Minz/ModelPdo.php7
1 files changed, 4 insertions, 3 deletions
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: