Microsoft Drivers 5.1.2 Preview for PHP for SQL Server Released!

Hi all,

We are excited to announce the technical preview for SQLSRV and PDO_SQLSRV drivers. The driver now supports basic CRUD functionalities with the Always Encrypted feature.

Notable items about 5.1.2-preview release:


  • Support for non-UTF8 locales in Linux and macOS


  • 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)


  • 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


Notable items included from the previous 5.1.1-preview release,


  • 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)


Let us know how we are doing and how you use our driver by taking our pulse survey:

Get Started

Direct downloads can be found on the Github release tag.

Getting Drivers for PHP5 and older runtimes

You can download the Microsoft Drivers for PHP for SQL Server for old versions of  PHP (5.4, 5.5 and 5.6) from the download center: Version 3.0 supports PHP 5.4, version 3.1 supports PHP 5.4 and PHP 5.5 and version 3.2 supports PHP 5.4, 5.5 and 5.6.

PHP Driver Version Supported
v3.2 PHP 5.6, 5.5, 5.4
v3.1 PHP 5.5, 5.4
v3.1 PHP 5.4


David Engel