5.4.0-preview for PHP drivers for SQL Server
Pre-release
Pre-release
We are pleased to announce the technical preview for SQLSRV and PDO_SQLSRV drivers that support the Azure AD access token for Windows, Linux and macOS. Both drivers have been built with PHP 7.1+ and tested on all supported platforms (Windows, Ubuntu 16.04 and 18.04, RedHat 7, Debian 8 and 9, Suse 12, and macOS 10.11, 10.12, and 10.13).
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 drivers by taking our pulse survey:
Install
- On Linux and macOS run the commands below:
sudo pecl install sqlsrv-5.4.0preview
sudo pecl install pdo_sqlsrv-5.4.0preview
- To download Windows DLLs for PHP 7.1 or 7.2 from the PECL repository, please navigate to SQLSRV or PDO_SQLSRV. The ones for PHP 7.3 can be found in SQLSRV or PDO_SQLSRV