Modernize CI Pipeline: PHP 8.4, ODBC 18, SQL Server 2022#1549
Merged
Modernize CI Pipeline: PHP 8.4, ODBC 18, SQL Server 2022#1549
Conversation
…into jahnvi/pipeline_fix
…ty test, and improve locale generation
…stead of array to connect()
ODBC Driver 18 enables encryption by default. Tests that create their own connections need explicit Encrypt parameter to work with self-signed certificates. Modified 51 test files in pdo_sqlsrv and sqlsrv functional tests.
Fix remaining test files that were still missing Encrypt parameter
- Add MsSetup.inc include to sqlsrv_escape_braces.phpt for encrypt variable - Add -C flag to bcp command in setup_dbs.py for SSL certificate trust - Add Encrypt parameter to driver injection tests in sqlsrv_testConnection_unix.phpt
David-Engel
reviewed
Jan 12, 2026
bewithgaurav
approved these changes
Jan 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces support for PHP 8.4 and updates the base environment from Ubuntu 18.04 to 22.04, along with several improvements to error handling and test infrastructure. The most significant changes include upgrading the Docker build and Appveyor CI matrix for PHP 8.4, updating the version to 5.13, improving error reporting in the PDO SQLSRV driver, and refactoring test connection logic for consistency and maintainability.
Environment and Build System Updates:
Dockerfile-msphpsqlfrom Ubuntu 18.04 to 22.04, switched installed PHP version from 7.3 to 8.4, updated related package installs, and changed all PHP references and configuration paths to use PHP 8.4.builddrivers.py,buildtools.py) for Windows to use double backslashes for path consistency and added support for selecting the correct Visual Studio version for PHP 8.4 (vs17).Driver and Version Updates:
source/shared/version.h.Error Handling Improvements:
pdo_sqlsrv/pdo_util.cpp: When ODBC diagnostic retrieval fails, a minimal error with SQLSTATE "HY000" and a clear message is now generated, improving reliability of error feedback.Test Infrastructure Refactoring:
test/bvt/pdo_sqlsrv/connect.incby introducing a reusablegetPdoConnection()function, and updated all test files to use this function for consistent and maintainable connection setup.Build Configuration Improvements:
buildtools.pyby adding--with-iconvand removing duplicate--enable-mbstringfor better compatibility with PHP 8.4.