Microsoft Drivers 5.4.0 Preview for PHP for SQL Server Released!
Hi all,
We are excited to announce a new technical preview for SQLSRV and PDO_SQLSRV drivers for PHP. The driver supports the Microsoft ODBC Driver 17.3 (Preview) for SQL Server driver and includes some fixes and new features.
Notable items about the 5.4.0-preview release:
Added
- Added support for PHP 7.3.0 RC1
- Added support for Azure AD Access Token (in Linux / macOS this requires MS ODBC Driver 17+ and unixODBC 2.3.6+)
- Feature Request #842 - new PDO_STMT_OPTION_FETCHES_DATETIME_TYPE flag for pdo_sqlsrv to return datetime as objects
- Feature Request #844 - add ReturnDatesAsStrings option to statement level for sqlsrv
- Compatible with ODBC Driver 17.3 CTP
Removed
- Dropped support for Ubuntu 17.10
- Dropped support for PHP 7.0 - Version 5.3 is the last to support PHP 7.0.
Fixed
- Issue #434 - To avoid the pitfall that could result in a crash, before freeing stmt in the destructor check if its dbh driver data is NULL
- Pull Request #836 - Modified the config files to enable Spectre Mitigations (use /Qspectre switch) for PHP 7.2
- Pull Request #833 - Streamlined the error handling to remove a potential cause of crash
Limitations
- No support for inout / output params when using sql_variant type
- In Linux and macOS, setlocale() only takes effect if it is invoked before the first connection. Attempting to set the locale after connecting will not work
- Always Encrypted requires MS ODBC Driver 17+
- Only Windows Certificate Store and Azure Key Vault are supported. Custom Keystores are not yet supported
- Issue #716 - With Always Encrypted enabled, named parameters in subqueries are not supported
- Always Encrypted limitations
Known Issues
- Connection pooling on Linux or macOS is not recommended with unixODBC < 2.3.7
- When pooling is enabled in Linux or macOS
- unixODBC <= 2.3.4 (Linux and macOS) might not return proper diagnostic information, such as error messages, warnings and informative messages
- due to this unixODBC bug, fetch large data (such as xml, binary) as streams as a workaround. See the examples here
- With ColumnEncryption enabled, calling stored procedures with XML parameters does not work (Issue #674)
- With ColumnEncryption enabled, fetching varbinary(max), varchar(max) or nvarchar(max) may fail with ODBC Driver 17.3 CTP
Survey
Let us know how we are doing and how you use our driver by taking our pulse survey: https://aka.ms/mssqlphpsurvey
Get Started
Direct downloads can be found on the Github release tag.
David Engel