This post has been republished via RSS; it originally appeared at: SQL Server articles.
We recently released Microsoft Drivers for PHP for SQL Server, version 5.8.0. This production release of the SQLSRV and PDO_SQLSRV drivers has been built with PHP 7.2, 7.3, and 7.4 and tested on all supported platforms.
Notable items about this release since the previous production release include:
- Support for PHP 7.4
- Support for Microsoft ODBC Driver 17.5 on all platforms
- Support for Debian 10 and Red Hat 8 - require MS ODBC Driver 17.4+
- Support for macOS Catalina, Alpine Linux 3.11 (experimental), and Ubuntu 19.10 - require ODBC Driver 17.5+
- Feature Request #929 - new Language option - Pull Request #930
- Data Classification Sensitivity Metadata Retrieval - requires ODBC Driver 17.4.2+ and SQL Server 2019
- Feature Request #1018 - support for PHP extended string types - Pull Request #1043
- Always Encrypted with secure enclaves - requires ODBC Driver 17.4+ and SQL Server 2019
- Feature Request #1063 - add configurable options for locale settings in Linux and macOS - Pull Request #1069
- Dropped support for PHP 7.1
- Dropped support for SQL Server 2008 R2, macOS Sierra, Ubuntu 18.10 and Ubuntu 19.04
- Issue #570 - Fixed fetching varbinary data using client buffer with sqlsrv
- Pull Request #972 - Removed redundant calls to retrieve the number of columns or rows in the current query result set
- Pull Request #978 - PDO_SQLSRV implementation of PDO::getColumnMeta now references cached metadata rather than making an ODBC call every time
- Pull Request #979 - Added support for Data Classification Sensitivity metadata retrieval
- Pull Request #985 - Fixed memory issues with Data Classification data structures
- Issue #432 - Having any invalid UTF-8 name in the connection string will no longer invoke misleading error messages
- Issue #909 - Fixed potential exception with locale issues in macOS
- Pull Request #992 - Produced the correct error when requesting Data Classification metadata with ODBC drivers prior to 17
- Pull Request #1001 - Fixed compilation issue with PHP 7.4 alpha
- Pull Request #1004 - Fixed another compilation issue with PHP 7.4 alpha
- Pull Request #1008 - Improved data caching when fetching datetime objects
- Pull Request #1011 - Fixed a potential buffer overflow when parsing for escaped braces in the connection string
- Pull Request #1015 - Fixed compilation issues and addressed various memory leaks detected by PHP 7.4 beta 1
- Issue #1027 - Fixed how drivers handle query timeout settings
- Pull Request #1049 - Performance improvement for fetching from tables with many columns - cached the derived php types with column metadata to streamline data retrieval
- Pull Request #1068 - Some cosmetic changes to source code as per suggestions from a static analysis tool
- Issue #1079 - Support sql_variant types when using client buffers
- 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
- Issue #1050 - With Always Encrypted enabled, insertion requires the column list for any tables with identity columns
- Always Encrypted limitations
- Alpine Linux support is currently experimental. Production support will be added in a future release.
- On Alpine Linux, the Client-Side Cursors feature may cause an access violation if both sqlsrv and pdo_sqlsrv are enabled. Either enable only sqlsrv or pdo_sqlsrv, or build PHP from source by compiling the drivers statically.
- 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
Let us know how we are doing and how you use our drivers by taking our pulse survey.
- On Linux and macOS run the commands below:
- To download Windows DLLs for PHP 7.2 or above from the PECL repository, please navigate to SQLSRV or PDO_SQLSRV.
- Direct downloads for released binaries can also be found at the Github release tag.