mysql connection via socket if location of mysqld.sock was specified

This commit is contained in:
k-alin 2022-02-20 17:45:51 +01:00
parent 50580fd04c
commit ff439272b9

View File

@ -126,7 +126,7 @@ class Database
if (!$this->configCache->get('database', 'disable_pdo') && class_exists('\PDO') && in_array('mysql', PDO::getAvailableDrivers())) { if (!$this->configCache->get('database', 'disable_pdo') && class_exists('\PDO') && in_array('mysql', PDO::getAvailableDrivers())) {
$this->driver = self::PDO; $this->driver = self::PDO;
$connect = "mysql:host=" . $server . ";dbname=" . $db . ";unix_socket=" . $socket; $connect = "mysql:host=" . $server . ";dbname=" . $db;
if ($port > 0) { if ($port > 0) {
$connect .= ";port=" . $port; $connect .= ";port=" . $port;
@ -136,7 +136,11 @@ class Database
$connect .= ";charset=" . $charset; $connect .= ";charset=" . $charset;
} }
try { if ($socket) {
$connect .= ";$unix_socket=" . $socket;
}
try {
$this->connection = @new PDO($connect, $user, $pass, [PDO::ATTR_PERSISTENT => $persistent]); $this->connection = @new PDO($connect, $user, $pass, [PDO::ATTR_PERSISTENT => $persistent]);
$this->connection->setAttribute(PDO::ATTR_EMULATE_PREPARES, $this->pdo_emulate_prepares); $this->connection->setAttribute(PDO::ATTR_EMULATE_PREPARES, $this->pdo_emulate_prepares);
$this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT); $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
@ -150,9 +154,9 @@ class Database
$this->driver = self::MYSQLI; $this->driver = self::MYSQLI;
if ($port > 0) { if ($port > 0) {
$this->connection = @new mysqli($server, $user, $pass, $db, $port, $socket); $this->connection = @new mysqli($server, $user, $pass, $db, $port);
} else { } else {
$this->connection = @new mysqli($server, $user, $pass, $db, $socket); $this->connection = @new mysqli($server, $user, $pass, $db);
} }
if (!mysqli_connect_errno()) { if (!mysqli_connect_errno()) {
@ -161,6 +165,11 @@ class Database
if ($charset) { if ($charset) {
$this->connection->set_charset($charset); $this->connection->set_charset($charset);
} }
if ($socket) {
$this->connection->set_socket($socket);
}
} }
} }