Microsoft Drivers 5.9.0 for PHP for SQL Server Released
Published Jan 29 2021 03:39 PM 7,747 Views
Steel Contributor

We have released Microsoft Drivers for PHP for SQL Server, version 5.9.0. This production release of the SQLSRV and PDO_SQLSRV drivers has been built with PHP 7.3, 7.4, and 8.0 and tested on all supported platforms.


Notable items about this release since the previous production release include:




  • Dropped support for PHP 7.2
  • Dropped support for macOS High Sierra, Ubuntu 19.10 and Debian 8


  • Pull Request #1127 - removed TSRMLS macros in preparation for PHP 8 by remicollet
  • Pull Request #1136 - improved performance when handling decimal numbers as inputs or outputs and removed unnecessary conversions for numeric values
  • Pull Request #1143 - if an exception occurs when executing a query, it will not change the output parameters
  • Pull Request #1144 - use the correct C types when binding output parameters with integer values
  • Pull Request #1146 - improved performance when fetching numbers using client buffers
  • Pull Request #1165 - set query timeout without using LOCK TIMEOUT, which saves an extra trip to the server
  • Issue #1170 - when fetching large data types such as ntext, check more than only the display size - pull request #1172
  • Pull Request #1205 - minimized compilation warnings on Linux and macOS
  • Pull Request #1209 - fixed a bug when fetching varbinary max fields as char or wide chars
  • Issue #1210 - switched from preview to beta terminology to enable Pickle support
  • Issue #1213 - the MACOSX_DEPLOYMENT_TARGET in config files caused linker errors in macOS Big Sur - Pull Request #1215
  • Pull Request #1226 - replaced the problematic strlen function
  • Pull Request #1227 - addressed static code analyis issues


  • 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

Known Issues

  • This release requires ODBC Driver 17.4.2 or above. Otherwise, a warning about failing to set an attribute may be suppressed when using an older ODBC driver.
  • 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:



sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv



  • Windows DLLs for PHP 7.3 or above can be downloaded as a package from Microsoft, or from the PECL repository for SQLSRV or PDO_SQLSRV.
  • Direct downloads for released binaries can also be found at the Github release tag.


David Engel

1 Comment
Version history
Last update:
‎Jan 29 2021 03:49 PM
Updated by: