Skip to content

Commit 05f3f0d

Browse files
authored
Merge pull request #92 from bramley/database_port
Use port and socket if provided when creating the PDO DSN.
2 parents 273034d + 31b5170 commit 05f3f0d

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

index.php

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ class updater
2727
private $database_name;
2828
private $database_user;
2929
private $database_password;
30+
private $database_port;
31+
private $database_socket;
3032
private $table_prefix;
3133

3234
public function __construct()
@@ -43,6 +45,8 @@ public function __construct()
4345
$this->database_name = $database_name;
4446
$this->database_user = $database_user;
4547
$this->database_password = $database_password;
48+
$this->database_port = isset($database_port) ? $database_port : null;
49+
$this->database_socket = isset($database_socket) ? $database_socket : null;
4650
$this->table_prefix = isset($table_prefix) ? $table_prefix : 'phplist_';
4751
}
4852

@@ -320,8 +324,23 @@ function getConfigFilePath()
320324
*/
321325
function getConnection()
322326
{
327+
static $pdo = null;
328+
329+
if ($pdo !== null) {
330+
return $pdo;
331+
}
323332
$charset = 'utf8mb4';
324-
$dsn = "mysql:host=$this->database_host;dbname=$this->database_name;charset=$charset";
333+
$dsn = "mysql:dbname=$this->database_name;charset=$charset;";
334+
335+
if ($this->database_socket !== null) {
336+
$dsn .= "socket=$this->database_socket";
337+
} else {
338+
$dsn .= "host=$this->database_host";
339+
340+
if ($this->database_port !== null) {
341+
$dsn .=";port=$this->database_port";
342+
}
343+
}
325344
$options = array(
326345
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
327346
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
@@ -332,6 +351,7 @@ function getConnection()
332351
} catch (\PDOException $e) {
333352
throw new \PDOException($e->getMessage(), (int)$e->getCode());
334353
}
354+
335355
return $pdo;
336356
}
337357

0 commit comments

Comments
 (0)