@yitam yitam released this Sep 24, 2018 · 6 commits to dev since this release

Assets 26

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

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
Aug 15, 2018
The hotfix for 4.3.0 RTW
Assets 29

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.

@yitam yitam released this May 30, 2018 · 5 commits to master since this release

Assets 26

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.
Assets 26

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.

@yitam yitam released this Dec 20, 2017 · 357 commits to master since this release

Assets 26

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

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.

@v-kaywon v-kaywon released this Nov 21, 2017 · 495 commits to master since this release

Assets 20

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.

@yitam yitam released this Oct 25, 2017 · 583 commits to master since this release

Assets 20

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.

@v-kaywon v-kaywon released this Sep 20, 2017 · 768 commits to master since this release

Assets 20

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.

@v-kaywon v-kaywon released this Jul 31, 2017 · 1110 commits to master since this release

Assets 17

We are excited to announce the technical preview for SQLSRV and PDO_SQLSRV drivers support PHP 7.2 Beta 1 as well. Both drivers have been built PHP 7.2 Beta 1 and tested on all supported platforms (Mac OS X (Sierra and El Capitan), Ubuntu 16, Debian 8, CentOS 7, and Windows)

Notable items about 5.0.0-preview release,

Added

  • Added support for PHP 7.2 Beta 1

Changed

  • Implementation of PDO::lastInsertId($name) to return the last inserted sequence number if the sequence name is supplied to the function (lastInsertId)

Removed

  • No longer support Ubuntu 15
  • Supplying tablename into PDO::lastInsertId($name) no longer return the last inserted row (lastInsertId)

Limitation

  • No support for inout / output params when using sql_variant type

Known Issues

  • 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.0.0preview
    sudo pecl install pdo_sqlsrv-5.0.0preview
  • Download Windows DLLs from SQLSRV or PDO_SQLSRV PECL repository.