Home
%3CLINGO-SUB%20id%3D%22lingo-sub-385870%22%20slang%3D%22en-US%22%3EMicrosoft%20Drivers%205.2.0%20for%20PHP%20for%20SQL%20Server%20Released!%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-385870%22%20slang%3D%22en-US%22%3E%0A%20%26lt%3Bmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text%2Fhtml%3B%20charset%3DUTF-8%22%20%2F%26gt%3B%3CSTRONG%3EFirst%20published%20on%20MSDN%20on%20Mar%2027%2C%202018%20%3C%2FSTRONG%3E%20%3CBR%20%2F%3E%20Hi%20all%2C%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20We%20are%20excited%20to%20announce%20the%20production%20ready%20release%20for%20the%20%3CA%20href%3D%22https%3A%2F%2Fwww.microsoft.com%2Fen-us%2Fdownload%2Fdetails.aspx%3Fid%3D56729%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Microsoft%20Drivers%205.2.0%20for%20PHP%20for%20SQL%20Server%20%3C%2FA%3E%20.%20The%20drivers%20now%20support%20basic%20select%2Finsert%2Fupdate%2Fdelete%20functionality%20with%20the%20Always%20Encrypted%20feature.%26nbsp%3BThe%26nbsp%3Bdriver%20enables%20access%20to%20SQL%20Server%2C%20Azure%20SQL%20Database%20and%20Azure%20SQL%20DW%20from%20PHP%207.0-7.2%20applications%20on%20Linux%2C%20Windows%20and%20macOS.%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20Notable%20items%20about%205.2.0%20since%204.3.0%3A%20%3CBR%20%2F%3E%3CH3%20id%3D%22toc-hId-1511084482%22%20id%3D%22toc-hId-1535899325%22%3EAdded%3C%2FH3%3E%3CBR%20%2F%3E%3CUL%3E%3CBR%20%2F%3E%3CLI%3EAdded%20support%20for%20Always%20Encrypted%20(see%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FMicrosoft%2Fmsphpsql%2Fwiki%2FFeatures%23aebindparam%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Features%20%3C%2FA%3E%20)%20%3CBR%20%2F%3E%3CUL%3E%3CBR%20%2F%3E%3CLI%3ESupport%20for%20Windows%20Certificate%20Store%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3ESupport%20for%20inserting%20into%20and%20modifying%20an%20encrypted%20column%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3ESupport%20for%20fetching%20from%20an%20encrypted%20column%3C%2FLI%3E%3CBR%20%2F%3E%3C%2FUL%3E%3CBR%20%2F%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EAdded%20support%20for%20PHP%207.2%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EAdded%20support%20for%20Microsoft%20ODBC%20Driver%2017%20for%20SQL%20Server%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EAdded%20support%20for%20Ubuntu%2017%20(requires%20Microsoft%20ODBC%20Driver%2017%20for%20SQL%20Server)%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EAdded%20support%20for%20Debian%209%20(requires%20Microsoft%20ODBC%20Driver%2017%20for%20SQL%20Server)%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EAdded%20support%20for%20SUSE%2012%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EAdded%20Driver%20option%20to%20specify%20the%20Microsoft%20ODBC%20driver%20%3CBR%20%2F%3E%3CUL%3E%3CBR%20%2F%3E%3CLI%3EValid%20options%20are%20%22ODBC%20Driver%2017%20for%20SQL%20Server%22%2C%20%22ODBC%20Driver%2013%20for%20SQL%20Server%22%2C%20and%20%22ODBC%20Driver%2011%20for%20SQL%20Server%22%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EThe%20default%20driver%20is%20ODBC%20Driver%2017%20for%20SQL%20Server%3C%2FLI%3E%3CBR%20%2F%3E%3C%2FUL%3E%3CBR%20%2F%3E%3C%2FLI%3E%3CBR%20%2F%3E%3C%2FUL%3E%3CBR%20%2F%3E%3CH3%20id%3D%22toc-hId--1041072479%22%20id%3D%22toc-hId--1016257636%22%3EChanged%3C%2FH3%3E%3CBR%20%2F%3E%3CUL%3E%3CBR%20%2F%3E%3CLI%3EImplementation%20of%20PDO%3A%3AlastInsertId(%24name)%20to%20return%20the%20last%20inserted%20sequence%20number%20if%20the%20sequence%20name%20is%20supplied%20to%20the%20function%20(%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FMicrosoft%2Fmsphpsql%2Fwiki%2FFeatures%23lastinsertid%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20lastInsertId%20%3C%2FA%3E%20)%3C%2FLI%3E%3CBR%20%2F%3E%3C%2FUL%3E%3CBR%20%2F%3E%3CH3%20id%3D%22toc-hId-701737856%22%20id%3D%22toc-hId-726552699%22%3EFixed%3C%2FH3%3E%3CBR%20%2F%3E%3CUL%3E%3CBR%20%2F%3E%3CLI%3EIssue%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FMicrosoft%2Fmsphpsql%2Fissues%2F555%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20%23555%20%3C%2FA%3E%20-%20Hebrew%20strings%20truncation%20(requires%20Microsoft%20ODBC%20Driver%2017)%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EAdjusted%20precisions%20for%20numeric%2Fdecimal%20inputs%20with%20Always%20Encrypted%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3ESupport%20for%20non-UTF8%20locales%20in%20Linux%20and%20macOS%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EFixed%20crash%20caused%20by%20executing%20an%20invalid%20query%20in%20a%20transaction%20(Issue%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FMicrosoft%2Fmsphpsql%2Fissues%2F434%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20%23434%20%3C%2FA%3E%20)%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EAdded%20error%20handling%20for%20using%20PDO%3A%3ASQLSRV_ATTR_DIRECT_QUERY%20or%20PDO%3A%3AATTR_EMULATE_PREPARES%20in%20a%20Column%20Encryption%20enabled%20connection%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EAdded%20error%20handling%20for%20binding%20TEXT%2C%20NTEXT%20or%20IMAGE%20as%20output%20parameter%20(Issue%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FMicrosoft%2Fmsphpsql%2Fissues%2F231%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20%23231%20%3C%2FA%3E%20)%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EPDO%3A%3Aquote%20with%20string%20containing%20ASCII%20NUL%20character%20(Issue%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FMicrosoft%2Fmsphpsql%2Fissues%2F538%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20%23538%20%3C%2FA%3E%20)%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EDecimal%20types%20with%20no%20decimals%20are%20correctly%20handled%20when%20Always%20Encrypted%20is%20enabled%20(PR%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FMicrosoft%2Fmsphpsql%2Fpull%2F544%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20%23544%20%3C%2FA%3E%20)%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EBIGINT%20as%20an%20output%20param%20no%20longer%20results%20in%20value%20out%20of%20range%20exception%20when%20the%20returned%20value%20is%20larger%20than%20a%20maximum%20integer%20(%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FMicrosoft%2Fmsphpsql%2Fpull%2F567%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20PR%20%23567%20%3C%2FA%3E%20)%3C%2FLI%3E%3CBR%20%2F%3E%3C%2FUL%3E%3CBR%20%2F%3E%3CH3%20id%3D%22toc-hId--1850419105%22%20id%3D%22toc-hId--1825604262%22%3ERemoved%3C%2FH3%3E%3CBR%20%2F%3E%3CUL%3E%3CBR%20%2F%3E%3CLI%3EDropped%20support%20for%20Ubuntu%2015%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3ESupplying%20tablename%20into%20PDO%3A%3AlastInsertId(%24name)%20no%20longer%20return%20the%20last%20inserted%20row%20(%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FMicrosoft%2Fmsphpsql%2Fwiki%2FFeatures%23lastinsertid%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20lastInsertId%20%3C%2FA%3E%20)%3C%2FLI%3E%3CBR%20%2F%3E%3C%2FUL%3E%3CBR%20%2F%3E%3CH3%20id%3D%22toc-hId--107608770%22%20id%3D%22toc-hId--82793927%22%3ELimitations%3C%2FH3%3E%3CBR%20%2F%3E%3CUL%3E%3CBR%20%2F%3E%3CLI%3EAlways%20Encrypted%20is%20not%20supported%20in%20Linux%20and%20macOS%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EIn%20Linux%20and%20macOS%2C%20setlocale()%20only%20takes%20effect%20if%20it%20is%20invoked%20before%20the%20first%20connection.%20Attempting%20to%20set%20the%20locale%20after%20connection%20will%20not%20work%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EAlways%20Encrypted%20functionalities%20are%20only%20supported%20using%20MS%20ODBC%20Driver%2017%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FMicrosoft%2Fmsphpsql%2Fwiki%2FFeatures%23aelimitation%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Always%20Encrypted%20limitations%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EWhen%20using%20sqlsrv_query%20with%20Always%20Encrypted%20feature%2C%20SQL%20type%20has%20to%20be%20specified%20for%20each%20input%20(see%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FMicrosoft%2Fmsphpsql%2Fwiki%2FFeatures%23aebindparam%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20here%20%3C%2FA%3E%20)%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3ENo%20support%20for%20inout%20%2F%20output%20params%20when%20using%20sql_variant%20type%3C%2FLI%3E%3CBR%20%2F%3E%3C%2FUL%3E%3CBR%20%2F%3E%3CH3%20id%3D%22toc-hId-1635201565%22%20id%3D%22toc-hId-1660016408%22%3EKnown%20Issues%3C%2FH3%3E%3CBR%20%2F%3E%3CUL%3E%3CBR%20%2F%3E%3CLI%3EConnection%20pooling%20on%20Linux%20doesn't%20may%20not%20work%20properly%20when%20using%20Microsoft%20ODBC%20Driver%2017%26nbsp%3BunixODBC%20%26lt%3B%202.3.6%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EWhen%20pooling%20is%20enabled%20in%20Linux%20or%20macOS%20%3CBR%20%2F%3E%3CUL%3E%3CBR%20%2F%3E%3CLI%3EunixODBC%20%26lt%3B%3D%202.3.4%20(Linux%20and%20macOS)%20might%20not%20return%20proper%20diagnostics%20information%2C%20such%20as%20error%20messages%2C%20warnings%20and%20informative%20messages%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3Edue%20to%20this%20unixODBC%20bug%2C%20fetch%20large%20data%20(such%20as%20xml%2C%20binary)%20as%20streams%20as%20a%20workaround.%20See%20the%20examples%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FMicrosoft%2Fmsphpsql%2Fwiki%2FConnection-Pooling-on-Linux-and-Mac%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20here%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3C%2FUL%3E%3CBR%20%2F%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EConnection%20with%20Connection%20Resiliency%20enabled%20does%20not%20resume%20properly%20with%20Connection%20Pooling%20(Issue%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FMicrosoft%2Fmsphpsql%2Fissues%2F678%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20%23678%20%3C%2FA%3E%20)%20-%20Fixed%20with%20MS%20ODBC%20Driver%2017.1%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EWith%20ColumnEncryption%20enabled%2C%20calling%20stored%20procedure%20with%20XML%20parameter%20does%20not%20work%20(Issue%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FMicrosoft%2Fmsphpsql%2Fissues%2F674%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20%23674%20%3C%2FA%3E%20)%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3ECannot%20connect%20with%20both%20Connection%20Resiliency%20enabled%20and%20ColumnEncryption%20enabled%20(Issue%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FMicrosoft%2Fmsphpsql%2Fissues%2F577%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20%23577%20%3C%2FA%3E%20)%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EWith%20ColumnEncryption%20enabled%2C%20retrieving%20a%20negative%20decimal%20value%20as%20output%20parameter%20causes%20truncation%20of%20the%20last%20digit%20(Issue%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FMicrosoft%2Fmsphpsql%2Fissues%2F705%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20%23705%20%3C%2FA%3E%20)%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EWith%20ColumnEncryption%20enabled%2C%20cannot%20insert%20a%20double%20into%20a%20decimal%20column%20with%20precision%20and%20scale%20of%20(38%2C%2038)%20(Issue%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FMicrosoft%2Fmsphpsql%2Fissues%2F706%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20%23706%20%3C%2FA%3E%20)%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EWith%20ColumnEncryption%20enabled%2C%20when%20fetching%20decimals%20as%20output%20parameters%20bound%20to%20PDO%3A%3APARAM_BOOL%20or%20PDO%3A%3APARAM_INT%2C%20floats%20are%20returned%2C%20not%20integers%20(Issue%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FMicrosoft%2Fmsphpsql%2Fissues%2F707%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20%23707%20%3C%2FA%3E%20)%3C%2FLI%3E%3CBR%20%2F%3E%3C%2FUL%3E%3CBR%20%2F%3E%3CUL%3E%3CBR%20%2F%3E%3CLI%3E%3C%2FLI%3E%3CBR%20%2F%3E%3C%2FUL%3E%3CBR%20%2F%3E%3CH3%20id%3D%22toc-hId--916955396%22%20id%3D%22toc-hId--892140553%22%3ESurvey%3C%2FH3%3E%3CBR%20%2F%3E%20Let%20us%20know%20how%20we%20are%20doing%20and%20how%20you%20use%20our%20driver%20by%20taking%20our%20pulse%20survey%3A%20%3CA%20href%3D%22https%3A%2F%2Faka.ms%2Fmssqlphpsurvey%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20https%3A%2F%2Faka.ms%2Fmssqlphpsurvey%3C%2FA%3E%20%3CBR%20%2F%3E%3CH2%20id%3D%22toc-hId-1022368444%22%20id%3D%22toc-hId-1047183287%22%3EGet%20Started%3C%2FH2%3E%3CBR%20%2F%3E%3CUL%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fwww.microsoft.com%2Fen-us%2Fsql-server%2Fdeveloper-get-started%2Fphp%2Fubuntu%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20%3CSTRONG%3E%20Ubuntu%20%2B%20SQL%20Server%20%2B%20PHP%207%20%3C%2FSTRONG%3E%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fwww.microsoft.com%2Fen-us%2Fsql-server%2Fdeveloper-get-started%2Fphp%2Frhel%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20%3CSTRONG%3E%20RedHat%20%2B%20SQL%20Server%20%2B%20PHP%207%20%3C%2FSTRONG%3E%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fwww.microsoft.com%2Fen-us%2Fsql-server%2Fdeveloper-get-started%2Fphp%2Fwindows%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20%3CSTRONG%3E%20Windows%20%2B%20SQL%20Server%20%2B%20PHP%207%20%3C%2FSTRONG%3E%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fhub.docker.com%2Fr%2Flbosqmsft%2Fmssql-php-msphpsql%2F%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%20noopener%20noreferrer%22%3E%20%3CSTRONG%3E%20Docker%20%3C%2FSTRONG%3E%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3C%2FUL%3E%3CBR%20%2F%3E%20Direct%20downloads%20can%20be%20found%20on%20the%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FMicrosoft%2Fmsphpsql%2Freleases%2Ftag%2Fv5.2.0%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Github%20release%20tag%20%3C%2FA%3E%20.%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20David%20Engel%3C%2FLINGO-BODY%3E%3CLINGO-TEASER%20id%3D%22lingo-teaser-385870%22%20slang%3D%22en-US%22%3EFirst%20published%20on%20MSDN%20on%20Mar%2027%2C%202018%20Hi%20all%2CWe%20are%20excited%20to%20announce%20the%20production%20ready%20release%20for%20the%20Microsoft%20Drivers%205.%3C%2FLINGO-TEASER%3E%3CLINGO-LABS%20id%3D%22lingo-labs-385870%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3ESQLServerDrivers%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
Microsoft
First published on MSDN on Mar 27, 2018
Hi all,

We are excited to announce the production ready release for the Microsoft Drivers 5.2.0 for PHP for SQL Server . The drivers now support basic select/insert/update/delete functionality with the Always Encrypted feature. The driver enables access to SQL Server, Azure SQL Database and Azure SQL DW from PHP 7.0-7.2 applications on Linux, Windows and macOS.

Notable items about 5.2.0 since 4.3.0:

Added



  • Added support for Always Encrypted (see Features )

    • Support for Windows Certificate Store

    • 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 Microsoft ODBC Driver 17 for SQL Server

  • Added support for Ubuntu 17 (requires Microsoft ODBC Driver 17 for SQL Server)

  • Added support for Debian 9 (requires Microsoft ODBC Driver 17 for SQL Server)

  • Added support for SUSE 12

  • Added Driver option to specify the Microsoft ODBC driver

    • Valid options 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 Microsoft 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 Always Encrypted 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 doesn't may not work properly when using Microsoft ODBC Driver 17 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 ) - Fixed with MS ODBC Driver 17.1

  • 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


Let us know how we are doing and how you use our driver by taking our pulse survey: https://aka.ms/mssqlphpsurvey

Get Started



Direct downloads can be found on the Github release tag .

David Engel