Changes
[Added]
- Added support for Always Encrypted with basic CRUD functionalities (see here [here] (https://github.com/Microsoft/msphpsql/wiki/Features#aebindparam))
- Support for Windows Certificate Store (use connection keyword ColumnEncryption)
- Support for inserting into and modifying an encrypted column
- Support for fetching from an encrypted column
- Added support for PHP 7.2
- Added support for MSODBC 17
- Added support for Ubuntu 17 (requires MSODBC 17)
- Added support for Debian 9 (requires MSODBC 17)
- Added support for SUSE 12
- Added Driver option to set the ODBC driver, Added "Driver" option, valid values are ODBC Driver 17 for SQL Server, ODBC Driver 13 for SQL Server, and ODBC Driver 11 for SQL Server
- The default driver is ODBC Driver 17 for SQL Server
[Fixed]
- Issue #555 - Hebrew strings truncation (requires MSODBC 17)
- Adjusted precisions for numeric/decimal inputs with Always Encrypted
- Support for non-UTF8 locales in Linux and macOS
- Fixed crash caused by executing an invalid query in a transaction (Issue #434)
- Added error handling for binding TEXT, NTEXT or IMAGE as output parameter (Issue #231)
- Decimal types with no decimals are correctly handled when AE is enabled (PR #544)
- 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)
[Removed]
- No longer support Ubuntu 15
[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
- Always Encrypted limitations [Always Encrypted limitations](https://github.com/Microsoft/msphpsql/wiki/Features#aelimitation)
- When using sqlsrv_query with Always Encrypted feature, SQL type has to be specified for each input (see here [here](https://github.com/Microsoft/msphpsql/wiki/Features#aebindparam))
- No support for inout / output params when using sql_variant type
[Known Issues]
- Connection pooling on Linux doesn't work properly when using the MSODBC 17 preview
- When pooling is enabled in Linux or macOS
- unixODBC <= 2.3.4 (Linux and macOS) 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 [here](https://github.com/Microsoft/msphpsql/wiki/Connection-Pooling-on-Linux-and-Mac)
- Calling stored procedure with XML parameter does not work with Column Encryption enabled (Issue #674)
- Connection with Connection Resiliency enabled so not resume properly with Connection Pooling (Issue #678)
- Cannot connect with both Connection Resiliency enabled and ColumnEncryption enabled (Issue #577)