Releases: microsoft/msphpsql
Release list
Production Release for the PHP drivers Version 5.6.0 for SQL Server
We are pleased to announce the next production release of the Microsoft Drivers for PHP for SQL Server. The SQLSRV and PDO_SQLSRV drivers have been built with PHP 7.1, 7.2, and 7.3 and tested on all supported platforms.
Notable items about this release (5.6.0) since the last production release (5.3.0) include the following:
Added
- Added support for PHP 7.3
- Added support for Linux SUSE 15, Ubuntu 18.10 and macOS Mojave
- Feature Request #415 - new options at connection and statement levels for both drivers for formatting decimal values in the fetched results
- Added support for Azure AD Access Token (in Linux / macOS this requires MS ODBC Driver 17+ and unixODBC 2.3.6+)
- Added support for Authentication with Azure Active Directory using Managed Identity for Azure Resources (requires MS ODBC Driver 17.3+)
- 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
Removed
- Dropped support for Linux Ubuntu 17.10 and macOS El Capitan
- Dropped support for PHP 7.0 - Version 5.3 is the last to support PHP 7.0.
Fixed
- Issue #434 - To avoid possible crashes, before freeing stmt in the destructor check if its dbh driver data is NULL
- Pull Request #833 - Streamlined the error handling to remove a potential cause of crash
- Pull Request #836 - Modified the config files to enable Spectre Mitigations (use /Qspectre switch) for PHP 7.2 (see related Request #878)
- Pull Request #854 - Clear Azure Key Vault data after connection attributes are successfully set or when exception is thrown
- Pull Request #855 - Improved performance by saving meta data before fetching and skipping unnecessary conversions for numeric data
- Pull Request #865 - Corrected the way SQLPutData and SQLParamData are used when sending stream data to the server
- Pull Request #878 - Modified the config files to enable Spectre Mitigations for PHP 7.1 (see related Request #836)
- Pull Request #891 - Improved performance of Unicode conversions
- Pull Request #892 - Removed warning messages while compiling extensions
- Pull Request #904 - Enabled compiling extensions statically into PHP
- Pull Request #907 - Initialized output param buffer when allocating extra space
- Pull Request #919 - Initialized a boolean variable before passing it by reference into a function that will modify its value
Limitations
- No support for inout / output params when using sql_variant type
- No support for inout / output params when formatting decimal values
- 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)
- In SUSE 15, Azure Active Directory connections may fail if PHP is installed from package (Issue #934)
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
sudo pecl install pdo_sqlsrv
To download Windows DLLs for PHP 7.1 or above from the PECL repository, please go to the SQLSRV or PDO_SQLSRV PECL page.
5.5.0-preview for PHP drivers for SQL Server
We are pleased to announce the technical preview for SQLSRV and PDO_SQLSRV drivers that support PHP 7.3. Both drivers have been built with PHP 7.1+ and tested on all supported platforms (Windows, Ubuntu 16.04, 18.04, and 18.10, RedHat 7, Debian 8 and 9, Suse 12, and macOS 10.11, 10.12, 10.13 and 10.14).
Notable items about the 5.5.0-preview release,
Added
- Added support for PHP 7.3.0
- Added support for Linux Ubuntu 18.10 and mac OS Mojave
- Feature Request #415 - new options at connection and statement levels for both drivers for formatting decimal values in the fetched results
Fixed
- Pull Request #854 - Clear Azure Key Vault data after connection attributes are successfully set or when exception is thrown
- Pull Request #855 - Improved performance by saving meta data before fetching and skipping unnecessary conversions for numeric data
- Pull Request #865 - Corrected the way SQLPutData and SQLParamData are used when sending stream data to the server
- Pull Request #878 - Modified the config files to enable Spectre Mitigations for PHP 7.1 (see related Request #836)
- Pull Request #891 - Improved performance of Unicode conversions
- Pull Request #892 - Removed warning messages while compiling extensions
Limitations
- No support for inout / output params when using sql_variant type
- No support for inout / output params when formatting decimal values
- 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.5.0preview
sudo pecl install pdo_sqlsrv-5.5.0preview - To download Windows DLLs for PHP 7.1 or above from the PECL repository, please navigate to SQLSRV or PDO_SQLSRV.
5.4.0-preview for PHP drivers for SQL Server
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
Production Release for the PHP drivers Version 5.3.0 for SQL Server
We are pleased to announce the production release of the Microsoft Drivers for PHP for SQL Server. The SQLSRV and PDO_SQLSRV drivers have been built with PHP 7.0, 7.1, and 7.2 and tested on all supported platforms.
Notable items about this release (5.3.0) since the last production release (5.2.0) include the following:
Added
- Added support for Azure Key Vault for Always Encrypted functionality. Always Encrypted functionality is supported on Linux and macOS through Azure Key Vault
- Added support for connection resiliency on Linux and macOS (requires version 17.2 or higher of the ODBC driver)
- Added support for macOS High Sierra (requires version 17 or higher of the ODBC driver)
- Added support for Ubuntu 18.04 (requires version 17.2 or higher of the ODBC driver)
Fixed
- Issue #577 - Idle Connection Resiliency doesn't work with Column Encryption enabled connections (fixed in MS ODBC Driver 17.1)
- Issue #678 - Idle Connection Resiliency doesn't work with Connection Pooling (fixed in MS ODBC Driver 17.1)
- Issue #699 - Binding output parameters fails when the query in the stored procedure returns no data. The test case has been added to the test lab.
- Issue #705 - Always Encrypted - Retrieving a negative decimal value (edge case) as output parameter causes truncation
- Issue #706 - Always Encrypted - Cannot insert double with precision and scale (38, 38)
- Issue #707 - Always Encrypted - Fetching decimals / numerics as output parameters bound to PDO::PARAM_BOOL or PDO::PARAM_INT returns floats, not integers
- Issue #735 - Extended the buffer size for PDO::lastInsertId so that data types other than integers can be supported
- Pull Request #759 - Removed the limitation of binding a binary as inout param as PDO::PARAM_STR with SQLSRV_ENCODING_BINARY
- Pull Request #775 - Fixed the truncation problem for output params with SQL types specified as SQLSRV_SQLTYPE_DECIMAL or SQLSRV_SQLTYPE_NUMERIC
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 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.6
- 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)
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
sudo pecl install pdo_sqlsrv - Download Windows DLLs from SQLSRV or PDO_SQLSRV PECL repository.
5.2.1-preview for PHP drivers for SQL Server
With excitement, we announce the technical preview for SQLSRV and PDO_SQLSRV drivers that support basic CRUD functionalities with the Always Encrypted feature for Windows, Linux and macOS. Both drivers have been built with PHP 7.0+ and tested on all supported platforms (Windows, Ubuntu 16.04 and 17.10, RedHat 7, Debian 8 and 9, Suse 12, and macOS 10.11, 10.12, and 10.13).
Notable items about the 5.2.1-preview release,
Added
- Added support for Azure Key Vault for Always Encrypted for basic CRUD functionalities such that Always Encrypted feature is also available to Linux or macOS users
- Added support for macOS High Sierra (requires MS ODBC Driver 17+)
Fixed
- Issue #577 - Idle Connection Resiliency doesn't work with Column Encryption enabled connection
- Issue #678 - Idle Connection Resiliency doesn't work with Connection Pooling bug
- Issue #699 - Binding output parameter failed when the query in the stored procedure returned no data. The test case has been added to the test lab.
- Issue #705 - AE - Retrieving a negative decimal value (edge case) as output parameter causes truncation
- Issue #706 - AE - Cannot insert double with precision and scale (38, 38)
- Issue #707 - AE - Fetching decimals / numerics as output parameters bound to PDO::PARAM_BOOL or PDO::PARAM_INT returns floats, not integers
- Issue #735 - Extended the buffer size for PDO lastInsertId such that data types other than integers can be supported
- Pull Request #759 - Removed the limitation of binding a binary as inout param as PDO::PARAM_STR with SQLSRV_ENCODING_BINARY
- Pull Request #775 - Fixed the problem for output params with SQL types specified as SQLSRV_SQLTYPE_DECIMAL or SQLSRV_SQLTYPE_NUMERIC
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 connection will not work
- Always Encrypted feature, which requires MS ODBC Driver 17+
- only Windows Certificate Store and Azure Key Vault are supported
- Issue #716 - With Always Encrypted feature enabled, Named Parameters in Sub Queries are not supported
- Always Encrypted limitations
Known Issues
- Connection pooling on Linux or macOS not recommended with unixODBC < 2.3.6
- 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
- With ColumnEncryption enabled, calling stored procedures with XML parameters does not work (Issue #674)
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.2.1preview
sudo pecl install pdo_sqlsrv-5.2.1preview - Download Windows DLLs from SQLSRV or PDO_SQLSRV PECL repository.
Production release for PHP drivers for SQL Server on Mac OS X,Linux, and Windows
We are excited to announce the Production ready release for SQLSRV and PDO_SQLSRV drivers, supporting the basic CRUD functionalities with Always Encrypted. Both drivers have been built with PHP 7.* and tested on all supported platforms (Windows, Ubuntu 16 & 17, Debian 8 & 9, RedHat 7, SUSE 12, El Capitan and Sierra).
Notable items about this release (5.2.0) since the last production release (4.3.0) are:
Added
- Added support for Always Encrypted with basic CRUD functionalities (see here)
- 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 MS ODBC Driver 17
- Added support for Ubuntu 17 (requires MS ODBC Driver 17)
- Added support for Debian 9 (requires MS ODBC Driver 17)
- Added support for SUSE 12
- Added Driver option to set the MS 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
Changed
- Implementation of PDO::lastInsertId($name) to return the last inserted sequence number if the sequence name is supplied to the function (lastInsertId)
Fixed
- Issue #555 - Hebrew strings truncation (requires MS ODBC Driver 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 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)
- PDO::quote with string containing ASCII NUL character (Issue #538)
- 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
- Dropped support for Ubuntu 15
- Supplying tablename into PDO::lastInsertId($name) no longer return the last inserted row (lastInsertId)
Limitations
- Always Encrypted is not supported in Linux and macOS
- In Linux and macOS, setlocale() only takes effect if it is invoked before the first connection. Attempting to set the locale after connection will not work
- Always Encrypted functionalities are only supported using MS ODBC Driver 17
- 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 may not work properly when using unixODBC < 2.3.6
- 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
- Connection with Connection Resiliency enabled does not resume properly with Connection Pooling (Issue #678)
- With ColumnEncryption enabled, calling stored procedure with XML parameter does not work (Issue #674)
- Cannot connect with both Connection Resiliency enabled and ColumnEncryption enabled (Issue #577)
- With ColumnEncryption enabled, retrieving a negative decimal value as output parameter causes truncation of the last digit (Issue #705)
- With ColumnEncryption enabled, cannot insert a double into a decimal column with precision and scale of (38, 38) (Issue #706)
- With ColumnEncryption enabled, when fetching decimals as output parameters bound to PDO::PARAM_BOOL or PDO::PARAM_INT, floats are returned, not integers (Issue #707)
Survey
Thank you for taking the time to participate in our survey. You can help us improve by letting us know how we are doing and how you use PHP by taking our December pulse survey:
Install
- On Linux and macOS run the commands below:
sudo pecl install sqlsrv-5.2.0
sudo pecl install pdo_sqlsrv-5.2.0 - Download Windows binaries from SQLSRV or PDO_SQLSRV PECL repository.
5.2.0-RC macOS/Linux/Windows
We are excited to announce the Release Candidate for SQLSRV and PDO_SQLSRV drivers, supporting the basic CRUD functionalities with Always Encrypted. Both drivers have been built with PHP 7.* and tested on all supported platforms (Windows, Ubuntu 16 & 17, Debian 8 & 9, RedHat 7, SUSE 12, El Capitan and Sierra).
Notable items about the 5.2.0-RC,
Added
- Added support for Ubuntu 17 (requires MSODBC 17 preview)
- Added support for Debian 9 (requires MSODBC 17 preview)
Fixed
- Issue #555 - Hebrew strings truncation (requires MSODBC 17 preview)
- Issue #615 - Added error handling when fetching varchar(max) as a stream with Always Encrypted
- Adjusted precisions for numeric/decimal inputs with Always Encrypted
- Fixed bugs when binding parameters with Always Encrypted
- Fixed warnings as per Prefast code analysis
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
- 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
Thank you for taking the time to participate in our survey. You can help us improve by letting us know how we are doing and how you use PHP by taking our December pulse survey:
Install
- On Linux and macOS run the commands below:
sudo pecl install sqlsrv-5.2.0RC1
sudo pecl install pdo_sqlsrv-5.2.0RC1 - Download Windows binaries from SQLSRV or PDO_SQLSRV PECL repository.
5.1.2-preview macOS/Linux/Windows
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.
5.1.1-preview macOS/Linux/Windows
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.
5.1.0-preview Mac OS X/Linux/Windows
We are excited to announce the technical preview for SQLSRV and PDO_SQLSRV drivers support basic CRUD functionalities with Always Encrypted. Both drivers have been built PHP 7.1 and tested on all supported platforms (Ubuntu 16, Debian 8, CentOS 7, and Windows)
Notable items about 5.1.0-preview release,
Added
- Added support for SUSE 12
- Added support for Always Encrypted with basic CRUD functionalities (see here)
- Support for Windows Certificate Store (use connection keyword ColumnEncryption)
- Support for custom key store provider (use connection keywords ColumnEncryption, CEKeystoreProvider, CEKeystoreName, CEKeystoreEncryptKey)
- Support for inserting into an encrypted column
- Support for fetching from an encrypted column
- Added support for MSODBC 17 preview
- Added Driver option to set the ODBC driver, Added"Driver" option, valid values are ODBC Driver 13 for SQL Server,ODBC Driver 11 for SQL Server, and ODBC Driver 17 for SQL Server
- If the user intends to use the new Always Encrypted features, we recommend you to specify explicitly the 'Driver' option to 'ODBC Driver 17 for SQL Server' in the connection string
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
- PDO::quote returns truncated string with garbage characters appended if the string contains a ASCII NUL ('/0') character
- Binding decimal type when using Always Encrypted in the SQLSRV x64 driver returns an error during insertion when the input does not have any decimal places
- 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 driver by taking our pulse survey:
Install
- On Linux and Mac run the commands below:
sudo pecl install sqlsrv-5.1.0preview
sudo pecl install pdo_sqlsrv-5.1.0preview - Download Windows DLLs from SQLSRV or PDO_SQLSRV PECL repository.
- The Windows binaries is not yet available on GitHub. We will publish them as soon as possible.
