From 4bbb88bf9e6690637163c2a7709a06a99d83c47e Mon Sep 17 00:00:00 2001 From: Kenneth202212 <120502035+Kenneth202212@users.noreply.github.com> Date: Thu, 15 Aug 2024 05:46:12 -0400 Subject: [PATCH 1/3] Update SqlsrvDriver.php (#281) --- src/Sqlsrv/SqlsrvDriver.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Sqlsrv/SqlsrvDriver.php b/src/Sqlsrv/SqlsrvDriver.php index fef2d938d..772ec827a 100644 --- a/src/Sqlsrv/SqlsrvDriver.php +++ b/src/Sqlsrv/SqlsrvDriver.php @@ -87,6 +87,7 @@ public function __construct(array $options) $options['password'] = $options['password'] ?? ''; $options['database'] = $options['database'] ?? ''; $options['select'] = isset($options['select']) ? (bool) $options['select'] : true; + $options['trust_certificate'] = $options['trust_certificate'] ?? false; // Finalize initialisation parent::__construct($options); @@ -118,6 +119,7 @@ public function connect() 'Database' => $this->options['database'], 'uid' => $this->options['user'], 'pwd' => $this->options['password'], + 'TrustServerCertificate' => $this->options['trust_certificate'], 'CharacterSet' => 'UTF-8', 'ReturnDatesAsStrings' => true, ]; From 1a45905c7a86fb27e4a23f7b1235cd08b3d02881 Mon Sep 17 00:00:00 2001 From: Harald Leithner Date: Sun, 30 Mar 2025 15:51:04 +0200 Subject: [PATCH 2/3] [2.x] Replace incorrect working quoteNameStr method (#328) * Replace incorrect working quoteNameStr method * Update src/DatabaseDriver.php Co-authored-by: Richard Fath --------- Co-authored-by: Richard Fath --- src/DatabaseDriver.php | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/DatabaseDriver.php b/src/DatabaseDriver.php index 7f3fc3326..79257d945 100644 --- a/src/DatabaseDriver.php +++ b/src/DatabaseDriver.php @@ -1703,7 +1703,6 @@ protected function quoteNameString($name, $asSinglePart = false) protected function quoteNameStr($strArr) { $parts = []; - $q = $this->nameQuote; foreach ($strArr as $part) { @@ -1712,14 +1711,7 @@ protected function quoteNameStr($strArr) continue; } - if (\strlen($q) === 1) - { - $parts[] = $q . $part . $q; - } - else - { - $parts[] = $q[0] . $part . $q[1]; - } + $parts[] = quoteNameString($part, true); } return implode('.', $parts); From 8ee94c3483a7bb9d7eeae078d2981eb8553b3da8 Mon Sep 17 00:00:00 2001 From: Richard Fath Date: Sun, 30 Mar 2025 16:18:19 +0200 Subject: [PATCH 3/3] [2.x] PR 281 follow up - cast boolean option and fix code style (#333) * Cast to bool as for other boolean options * Code style * Re-order config --- src/Sqlsrv/SqlsrvDriver.php | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Sqlsrv/SqlsrvDriver.php b/src/Sqlsrv/SqlsrvDriver.php index 772ec827a..8e08016ef 100644 --- a/src/Sqlsrv/SqlsrvDriver.php +++ b/src/Sqlsrv/SqlsrvDriver.php @@ -82,12 +82,12 @@ public static function isSupported() public function __construct(array $options) { // Get some basic values from the options. - $options['host'] = $options['host'] ?? 'localhost'; - $options['user'] = $options['user'] ?? ''; - $options['password'] = $options['password'] ?? ''; - $options['database'] = $options['database'] ?? ''; - $options['select'] = isset($options['select']) ? (bool) $options['select'] : true; - $options['trust_certificate'] = $options['trust_certificate'] ?? false; + $options['host'] = $options['host'] ?? 'localhost'; + $options['user'] = $options['user'] ?? ''; + $options['password'] = $options['password'] ?? ''; + $options['database'] = $options['database'] ?? ''; + $options['select'] = isset($options['select']) ? (bool) $options['select'] : true; + $options['trust_certificate'] = isset($options['trust_certificate']) ? (bool) $options['trust_certificate'] : false; // Finalize initialisation parent::__construct($options); @@ -116,12 +116,12 @@ public function connect() // Build the connection configuration array. $config = [ - 'Database' => $this->options['database'], - 'uid' => $this->options['user'], - 'pwd' => $this->options['password'], + 'Database' => $this->options['database'], + 'uid' => $this->options['user'], + 'pwd' => $this->options['password'], + 'CharacterSet' => 'UTF-8', + 'ReturnDatesAsStrings' => true, 'TrustServerCertificate' => $this->options['trust_certificate'], - 'CharacterSet' => 'UTF-8', - 'ReturnDatesAsStrings' => true, ]; // Attempt to connect to the server.