|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2018-09-21 20:35 UTC] ghudson at dorothylane dot com
-Status: Open
+Status: Closed
[2018-09-21 20:35 UTC] ghudson at dorothylane dot com
[2018-09-21 21:12 UTC] cmb@php.net
-Assigned To:
+Assigned To: cmb
[2018-09-21 21:13 UTC] cmb@php.net
-Status: Closed
+Status: Not a bug
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Oct 30 06:00:02 2025 UTC |
Description: ------------ Using: ODBC Driver "SQL Server native Client 11.0", SQL Server 12.0.5579.0 When using a binding parameter to pass a value into an ENCRYPTBYPASSPHRASE statement, the value sent is consistently truncated to only the first character. This is true for all alphanumeric inputs. The Value field used in the example is of the type VARBINARY(80) Test script: --------------- $pass = "The Pa$$phrase"; $value = "1234567890123456"; $dbh = odbc_connect("Driver={SQl Server Native Client 11.0};Server=Database2;Database=Playground", "user", "password") or die('Something went wrong while connecting to MSSQL'); $insert = odbc_prepare($dbh, " INSERT INTO BindTests(Value) VALUES(ENCRYPTBYPASSPHRASE('".$pass."', ?)) "); odbc_execute($insert, array($value)); // Same Results $insert = odbc_prepare($dbh, " INSERT INTO BindTests(Value) VALUES(ENCRYPTBYPASSPHRASE('The Pa$$phrase', ?)) "); odbc_execute($insert, array($value)); Expected result: ---------------- SELECT ID, CAST(DECRYPTBYPASSPHRASE('The Pa$$phrase'), Value) AS VARCHAR(40)) FROM BindTests -------------- ID Value 1 1234567890123456 2 1234567890123456 Actual result: -------------- SELECT ID, CAST(DECRYPTBYPASSPHRASE('The Pa$$phrase'), Value) AS VARCHAR(40)) FROM BindTests -------------- ID Value 1 1 2 1