Skip to content

Commit

Permalink
Allow port to be specified in SQLServer connections.
Browse files Browse the repository at this point in the history
Refs #11544
  • Loading branch information
markstory committed Dec 15, 2017
1 parent a08ae39 commit 04bcc25
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
7 changes: 6 additions & 1 deletion src/Database/Driver/Sqlserver.php
Expand Up @@ -39,6 +39,7 @@ class Sqlserver extends Driver
'username' => '',
'password' => '',
'database' => 'cake',
'port' => '',
// PDO::SQLSRV_ENCODING_UTF8
'encoding' => 65001,
'flags' => [],
Expand Down Expand Up @@ -82,8 +83,12 @@ public function connect()
if (!empty($config['encoding'])) {
$config['flags'][PDO::SQLSRV_ATTR_ENCODING] = $config['encoding'];
}
$port = '';
if (strlen($config['port'])) {
$port = ',' . $config['port'];
}

$dsn = "sqlsrv:Server={$config['host']};Database={$config['database']};MultipleActiveResultSets=false";
$dsn = "sqlsrv:Server={$config['host']}{$port};Database={$config['database']};MultipleActiveResultSets=false";
if ($config['app'] !== null) {
$dsn .= ";APP={$config['app']}";
}
Expand Down
10 changes: 9 additions & 1 deletion tests/TestCase/Database/Driver/SqlserverTest.php
Expand Up @@ -66,7 +66,15 @@ public function dnsStringDataProvider()
[
],
'sqlsrv:Server=localhost\SQLEXPRESS;Database=cake;MultipleActiveResultSets=false',
]
],
[
[
'app' => 'CakePHP-Testapp',
'host' => 'locahost',
'port' => 9001,
],
'sqlsrv:Server=localhost\SQLEXPRESS,9001;Database=cake;MultipleActiveResultSets=false;APP=CakePHP-Testapp',
],
];
}

Expand Down

0 comments on commit 04bcc25

Please sign in to comment.