Work with MySQL Sockets

This passes anything that is not a valid port (0<int<65535) as a unix socket.
I tested this with unix sockets; this needs to be tested with a non-standard mysql port as well but I don't foresee any issues.

To use a unix socket, even one different than PHP's mysql.default_socket..
* Database Host = localhost:/path/to/socket
This commit is contained in:
josh4trunks 2014-06-04 22:50:23 -07:00
parent 39eeb7def9
commit e77c9bb97e
1 changed files with 8 additions and 1 deletions

View File

@ -65,6 +65,9 @@ class OC_DB {
$type = OC_Config::getValue( "dbtype", "sqlite" );
if(strpos($host, ':')) {
list($host, $port)=explode(':', $host, 2);
if(!is_int($port)||$port<1||$port>65535) {
$socket=true;
}
} else {
$port=false;
}
@ -89,7 +92,11 @@ class OC_DB {
'dbname' => $name,
);
if (!empty($port)) {
$connectionParams['port'] = $port;
if ($socket) {
$connectionParams['unix_socket'] = $port;
} else {
$connectionParams['port'] = $port;
}
}
}