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.2-preview release,
Added
- Support for non-UTF8 locales in Linux and macOS
Fixed
- Fixed crash caused by executing an invalid query in a transaction (Issue #434)
- Fixed regression in sqlsrv_next_result returning a no fields error when the active result set is null (Issue #581)
- Fixed incorrect active result set when sqlsrv_next_result or PDOStatement::nextRowset is called when Column Encryption is enabled (Issue #574)
- Fixed data corruption in fetching from an encrypted max column after calling sqlsrv_next_result or PDOStatemet::nextRowset (Issue #580)
- Added error handling for using PDO::SQLSRV_ATTR_DIRECT_QUERY or PDO::ATTR_EMULATE_PREPARES in a Column Encryption enabled connection
- Added error handling for binding TEXT, NTEXT or IMAGE as output parameter (Issue #231)
Limitations
- In Linux and macOS, setlocale() only takes effect if it is invoked before the first connection. The subsequent locale setting will not work
- 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
- Binding decimal input as a string when Column Encryption is enabled may change the precision of the input
- 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.2preview
sudo pecl install pdo_sqlsrv-5.1.2preview
- Download Windows DLLs from SQLSRV or PDO_SQLSRV PECL repository.