With excitement, we announce the technical preview for SQLSRV and PDO_SQLSRV drivers that support basic CRUD functionalities with the Always Encrypted feature. Both drivers have been built with PHP 7.0+ and tested on all supported platforms (Ubuntu 16, Debian 8, CentOS 7, and Windows).
Notable items about the 5.1.1-preview release,
Fixed
- PDO::quote with string containing ASCII NUL character (Issue #538)
- Appropriate error message is returned when calling nextRowset() or sqlsrv_next_result() on an empty result set (issue #507 )
- Decimal types with no decimals are correctly handled when AE is enabled (PR #544)
- Search for installed ODBC drivers in Linux/macOS first before attempting to connect using the default ODBC driver
- BIGINT as an output param no longer results in value out of range exception when the returned value is larger than a maximum integer (PR #567)
Limitations
- Always Encrypted functionalities are only supported using MSODBC 17 preview
- ODBC binaries for macOS available upon request
- MSODBC 17 preview msodbcsql.msi only works for Windows10
- Always Encrypted limitations
- When using sqlsrv_query with Always Encrypted feature, SQL type has to be specified for each input (see here)
- No support for inout / output params when using sql_variant type
Known Issues
- Connection pooling on Linux doesn't work properly if the user uses the MSODBC17 preview
- When pooling is enabled in Linux or MAC
- unixODBC <= 2.3.4 (Linux and MAC) might not return proper diagnostics 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
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.1.1preview
sudo pecl install pdo_sqlsrv-5.1.1preview
- Download Windows DLLs from SQLSRV or PDO_SQLSRV PECL repository.