Releases: microsoft/msphpsql
Release list
5.0.0-preview Mac OS X/Linux/Windows
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.
Production release for PHP drivers for SQL Server on Mac OS X,Linux, and Windows
We are excited to announce that Production ready release for SQLSRV and PDO_SQLSRV is now available on Sierra, El Capitan, Debian Jessie, Ubuntu 16, Ubuntu 15, CentOS 7, and Windows supporting PHP 7.0 and PHP 7.1.
Notable items about this release (4.3.0) since the last production release (4.0.8) are:
Added
- Added Unicode Column name support (issue #138).
- Support for Always On Availability groups via Transparent Network IP Resolution (TNIR)
- Added support for sql_variant data type with limitation (issue #51 and issue #127)
- Support drivers on Debian Jessie (tested on Debian 8.7)
- Idle Connection Resiliency support in Windows
- Connection pooling support for Linux and macOS
- Support for Mac (El Capitan and above)
- Azure Active Directory Authentication (AzureAD) with ActiveDirectoryPassword and SqlPassword
Fixed
- Fixed PECL installation errors when PHP was installed from source (issue #213).
- Fixed the assertion error (Linux) when fetching data from a binary column using the binary encoding (issue #226).
- Fixed issue output parameters bound to empty string (issue #182).
- Fixed a memory leak in closing connection resources.
- Fixed load ordering issue in MacOS (issue #417)
- Added a workaround for a bug in unixODBC 2.3.4 when connection pooling is enabled.
- Fixed the issue with driver loading order in macOS
- Fixed null returned when an empty string is set to an output parameter (issue #308).
-
Fixed in SQLSRV
- Fixed sqlsrv client buffer size to only allow positive integers (issue #228).
- Fixed sqlsrv_num_rows() when the client buffered result is null (issue #330).
- Fixed issues with sqlsrv_has_rows() to prevent it from moving statement cursor (issue #37).
- Fixed conversion warnings because of some const chars (issue #332).
- Fixed debug abort error when building the driver in debug mode with PHP 7.1.
- Fixed string truncation when binding varchar(max), nvarchar(max), varbinary(max), and xml types (issue #231).
- Fixed fatal error when fetching empty nvarchar (issue #69).
- Fixed fatal error when calling sqlsrv_fetch() with an out of bound offset for SQLSRV_SCROLL_ABSOLUTE (issue #223).
-
Fixed in PDO_SQLSRV
- Fixed issue with SQLSRV_ATTR_FETCHES_NUMERIC_TYPE when column return type is set on statement (issue #173).
- Improved performance by implementing a cache to store column SQL types and display sizes (issue #189).
- Fixed segmentation fault with PDOStatement::getColumnMeta() when the supplied column index is out of range (issue #224).
- Fixed issue with the unsupported attribute PDO::ATTR_PERSISTENT in connection (issue #65).
- Fixed the issue with executing DELETE operation on a non-existent value (issue #336).
- Fixed incorrectly binding of unicode parameter when emulate prepare is on and the encoding is set at the statement level (issue #92).
- Fixed binary column binding when emulate prepare is on (issue #140).
- Fixed wrong value returned when fetching varbinary value on Linux (issue #270).
- Fixed binary data not returned when the column is bound by name (issue #35).
- Fixed exception thrown on closeCursor() when the statement has not been executed (issue #267).
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
sudo pecl install pdo_sqlsrv - On Windows, download the DLLs from SQLSRV or PDO_SQLSRV PECL repository.
4.3.0-RC1 Mac OS X/ Linux/ Windows
We're excited to announce that the release candidate for Mac OS X (Sierra and El Capitan), Ubuntu 15.10, Ubuntu 16, Debian 8, CentOS 7, and Windows supporting PHP 7.0 and PHP 7.1 is now available.
Notable items about 4.3.0-RC1 release,
Added
- Transparent Network IP Resolution (TNIR) feature.
Fixed
- Fixed a memory leak in closing connection resources.
- Fixed load ordering issue in MacOS (issue #417)
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-4.3.0RC1
sudo pecl install pdo_sqlsrv-4.3.0RC1 - On Windows, download the DLLs from SQLSRV or PDO_SQLSRV PECL repository.
4.2.0-preview Mac OS X/Linux/Windows
We are excited to announce the technical preview for SQLSRV and PDO_SQLSRV drivers support Debian Jessie as well. Both drivers have been built and tested on Debian 8.7. In addition, starting with this release, we support sql_variant type with limitations.
Notable items about 4.2.0-preview release,
Added
- Added support for sql_variant data type with limitation (issue #51 and issue #127)
- Support drivers on Debian Jessie (tested on Debian 8.7)
Fixed
- Increased Test Coverage to 75%
- Bug fixes after running static analysis
Limitation
- No support for inout / output params when using sql_variant type
Known Issues
- User defined data types
- 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-4.2.0preview
sudo pecl install pdo_sqlsrv-4.2.0preview - On Windows, download the DLLs from SQLSRV or PDO_SQLSRV PECL repository.
4.1.9-preview Mac OS X/Linux/Windows
Updated documentation for Readme regarding instructions for Linux and MAC
Updated PECL release packages. Here is the list of updates:
Added
- Azure Active Directory Authentication with ActiveDirectoryPassword and SqlPassword
Fixed
- Fixed output parameter returning garbage when the parameter is initialized to a type that is different from the output type (issue #378).
PDO_SQLSRV only
- Fixed incorrectly binding of unicode parameter when emulate prepare is on and the encoding is set at the statement level (issue #92).
- Fixed binary column binding when emulate prepare is on (issue #140).
Known Issues
- User defined data types and SQL_VARIANT (issue #127).
- When pooling is enabled in Linux or MAC
- unixODBC 2.3.1 (Linux) and unixODBC 2.3.4 (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 April pulse survey:
Install
- On Linux and Mac run the commands below:
sudo pecl install sqlsrv-4.1.9preview
sudo pecl install pdo_sqlsrv-4.1.9preview - On windows, download the DLLs from SQLSRV or PDO_SQLSRV PECL repository.
4.1.8-preview Mac OS/Linux/Windows
Updated documentation for Readme regarding instructions for Linux and macOS
Updated PECL release packages. Here is the list of updates:
Added
- Connection Resiliency now supported in Windows
- Connection pooling now works in MAC
Fixed
SQLSRV and PDO_SQLSRV
- Added a workaround for a bug in unixODBC 2.3.4 when connection pooling is enabled.
- Fixed the issue in MAC such that which driver is loaded first no longer matters.
SQLSRV only
- Fixed sqlsrv_num_rows() when the client buffered result is null (issue #330).
- Fixed conversion warnings because of some const chars (issue #332).
PDO_SQLSRV only
- Improved performance by implementing a cache to store column SQL types and display sizes (issue #189).
- Fixed issue with the unsupported attribute PDO::ATTR_PERSISTENT in connection (issue #65).
- Fixed the issue when deleting something that doesn't exist (issue #336).
Known Issues
- User defined data types and SQL_VARIANT (issue #127).
- Binary column binding with emulate prepare (issue #140).
- When pooling is enabled in Linux or MAC
- unixODBC 2.3.1 (Linux) and unixODBC 2.3.4 (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 April pulse survey:
Install
- On Linux and Mac run the commands below:
sudo pecl install sqlsrv-4.1.8preview
sudo pecl install pdo_sqlsrv-4.1.8preview - On windows, download the DLLs from SQLSRV or PDO_SQLSRV PECL repository.
4.1.7-preview Mac OS X/Linux/Windows
We are thrilled to announce that the early technical preview for SQLSRV and PDO_SQLSRV drivers is now available. Both drivers have been built and tested on El Capitan (OS X 10.11).
Notable items about 4.1.7-preview release,
Fixed
SQLSRV and PDO_SQLSRV
- Fixed null returned when an empty string is set to an output parameter (issue #308).
- Fixed memory leaks in buffered result sets.
- Fixed clang compile errors.
SQLSRV only
- Fixed debug abort error when building the driver in debug mode with PHP 7.1.
- Fixed string truncation when binding varchar(max), nvarchar(max), varbinary(max), and xml types (issue #231).
- Fixed fatal error when fetching empty nvarchar (issue #69).
- Fixed fatal error when calling sqlsrv_fetch() with an out of bound offset for SQLSRV_SCROLL_ABSOLUTE (issue #223).
PDO_SQLSRV only
- Fixed wrong value returned when fetching varbinary value on Linux (issue #270).
- Fixed binary data not returned when the column is bound by name (issue #35).
- Fixed exception thrown on closeCursor() when the statement has not been executed (issue #267).
Survey
Let us know how we are doing and how you use our driver by taking our April pulse survey:
Known Issues
- User defined data types and SQL_VARIANT (issue #127).
- Binary column binding with emulate prepare (issue #140).
- Segmentation fault may result when an unsupported attribute is used for connection.
MAC only
- If loading both sqlsrv and pdo_sqlsrv, the order matters (even when dynamically). For PDO_SQLSRV scripts, load pdo_sqlsrv.so first. For SQLSRV scripts, load sqlsrv.so first.
- Connection pooling does not work.
Changed
- Version number is updated to follow semantic versioning.
Install
- On Linux and Mac run the commands below:
sudo pecl install sqlsrv-4.1.7preview
sudo pecl install pdo_sqlsrv-4.1.7preview - On windows, download the DLLs from SQLSRV or PDO_SQLSRV PECL repository.
4.1.6 Windows/Linux
Updated PECL release packages. Here is the list of updates:
Added
- Merged Linux and Windows code.
- Enabled connection pooling with unixODBC. To enable pooling:
- in odbcinst.ini, add
Pooling=Yesto the[ODBC]section and a positiveCPTimeoutvalue to[ODBC Driver 13 for SQL Server]section. See http://www.unixodbc.org/doc/conn_pool.html for detailed instructions.
- in odbcinst.ini, add
Fixed
- Fixed issues with sqlsrv_has_rows() to prevent it from moving statement cursor (issue #37).
- Fixed sqlsrv client buffer size to only allow positive integers (issue #228).
- Fixed PECL installation errors when PHP was installed from source (issue #213).
- Fixed segmentation fault with PDOStatement::getColumnMeta() when the supplied column index is out of range (issue #224).
- Fixed the assertion error (Linux) when fetching data from a binary column using the binary encoding (issue #226).
Known Issues
- The following features are not supported with connection pooling in Linux:
- Unicode connection strings
- sqlsrv_server_info and sqlsrv_client_info return false
- In certain scenarios a generic error message maybe returned instead of a specific error when pooling is disabled
- When retrieving data from columns with a data type of XML, varchar(max), nvarchar(max), or varbinary(max) no data maybe returned or the data maybe truncated depending on the length of the data in the source table.
Install
-
On Linux run the commands below:
sudo pecl install sqlsrv-4.1.6.1
sudo pecl install pdo_sqlsrv-4.1.6.1 -
On windows, download the DLLs from SQLSRV or PDO_SQLSRV PECL repository
4.1.5 Windows Preview
Windows drivers (4.1.5) compiled with PHP 7.0.14 and 7.1 are available. Here is the list of updates:
Added
- Added Unicode Column name support(issue #138).
Fixed
- Fixed issue output parameters bound to empty string (issue #182).
- Fixed issue with SQLSRV_ATTR_FETCHES_NUMERIC_TYPE when column return type is set on statement (issue #173).
Changed
- Code structure is updated to facilitate the development; shared codes between both drivers are moved to "shared" folder to avoid code duplication issues in development. To build the driver from source:
- if you are building the driver from source using PHP source, copy the "shared" folder as a subfolder to both the sqlsrv and pdo_sqlsrv folders.
Thanks,
SQL Server Team
Production Release for the PHP Linux Driver for SQL Server
We are excited to announce that production release of Linux drivers is available for Ubuntu 15.04, Ubuntu 16.04, and RedHat 7. Here is the list of updates:
Added
- Added
SQLSRV_ATTR_FETCHES_NUMERIC_TYPEattribute support in PDO_SQLSRV driver.SQLSRV_ATTR_FETCHES_NUMERIC_TYPEconnection attribute flag handles numeric fetches from columns with numeric Sql types (only bit, integer, smallint, tinyint, float and real). This flag can be turned on by setting its value inPDO::setAttributetotrue, For example,
$conn->setAttribute(PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE,true);
IfSQLSRV_ATTR_FETCHES_NUMERIC_TYPEis set totruethe results from an integer column will be represented as anint, likewise, Sql types float and real will be represented asfloat.
Note for exceptions:- When connection option flag
ATTR_STRINGIFY_FETCHESis on, even whenSQLSRV_ATTR_FETCHES_NUMERIC_TYPEis on, the return value will still be string. - When the returned PDO type in bind column is
PDO_PARAM_INT, the return value from a integer column will be int even ifSQLSRV_ATTR_FETCHES_NUMERIC_TYPEis off.
- When connection option flag
- Added Unicode Column name support(issue #138).
Fixed
- Fixed issue with SQLSRV_ATTR_FETCHES_NUMERIC_TYPE when column return type is set on statement (issue #173).
- Fixed precision issues when double data type returned as strings using buffered queries in PDO_SQLSRV driver.
- Fixed issue with buffered cursor in PDO_SQLSRV driver when CharacterSet is UTF-8 (issue #192).
- Fixed segmentation fault in error cases when error message is returned with emulate prepare attribute is set to true in PDO_SQLSRV driver.
- Fixed issue with empty output parameters on stored procedure(issue #182).
- Fixed memory leaks in buffered queries.
Limitations & Known issues
- This release contains the PHP 7 port of the SQLSRV and PDO_SQLSRV drivers on Linux, and does not provide backwards compatibility with PHP 5.
- Connection using named instances using '' is not supported.
- Local encodings other than UTF-8 are not supported, and SQLSRV_ENC_CHAR only supports ASCII characters with ASCII code of 0 to 127.
- Connection pooling in PDO_SQLSRV is not supported.
- Binary column binding with emulate prepare (issue#140)
Thanks,
SQL Server Team
