From a930379d155366edec0882973449fe81a1b099b6 Mon Sep 17 00:00:00 2001 From: Stephan Koch Date: Thu, 14 Sep 2023 07:02:47 +0200 Subject: [PATCH 1/2] fixed dsn connection string format for SQL Server --- src/Database/Connectors/SqlServerConnector.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Database/Connectors/SqlServerConnector.php b/src/Database/Connectors/SqlServerConnector.php index 0b10bf58..b149bb6d 100644 --- a/src/Database/Connectors/SqlServerConnector.php +++ b/src/Database/Connectors/SqlServerConnector.php @@ -41,18 +41,18 @@ protected function getDsn(array $config): string $dsn = []; if (null !== $host && null === $socket) { - $dsn['host'] = $host; + $dsn['Server'] = $host; } if (null !== $port && null === $socket) { - $dsn['port'] = $port; + $dsn['Server'] .= ',' . $port; } if (null !== $database) { - $dsn['dbname'] = $database; + $dsn['Database'] = $database; } - return 'dblib:' . http_build_query($dsn, '', ';'); + return 'sqlsrv:' . http_build_query($dsn, '', ';'); } /** From f0a797f3e4cd81c32e2eda812ee8ae3bc38e9708 Mon Sep 17 00:00:00 2001 From: stekoch Date: Mon, 20 Jan 2025 22:45:46 +0100 Subject: [PATCH 2/2] Update SqlServerConnector.php to include options TrustServerCertificate and Encrypt --- src/Database/Connectors/SqlServerConnector.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/Database/Connectors/SqlServerConnector.php b/src/Database/Connectors/SqlServerConnector.php index b149bb6d..f8f32e47 100644 --- a/src/Database/Connectors/SqlServerConnector.php +++ b/src/Database/Connectors/SqlServerConnector.php @@ -37,6 +37,8 @@ protected function getDsn(array $config): string $port = array_key_exists('port', $config) ? $config['port'] : null; $database = array_key_exists('database', $config) ? $config['database'] : null; $socket = array_key_exists('unix_socket', $config) ? $config['unix_socket'] : null; + $encrypt = array_key_exists('encrypt', $config) ? $config['encrypt'] : null; + $trustservercert = array_key_exists('trustservercert', $config) ? $config['trustservercert'] : null; $dsn = []; @@ -52,6 +54,14 @@ protected function getDsn(array $config): string $dsn['Database'] = $database; } + if (null !== $encrypt) { + $dsn['Encrypt'] = $encrypt; + } + + if (null !== $trustservercert) { + $dsn['TrustServerCertificate'] = $trustservercert; + } + return 'sqlsrv:' . http_build_query($dsn, '', ';'); }