Bug #76917 [Opn->Csd]: Binding parameters not sending full value

From: Date: Fri, 21 Sep 2018 20:35:47 +0000
Subject: Bug #76917 [Opn->Csd]: Binding parameters not sending full value
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-217190@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=76917&edit=1 ID: 76917 User updated by: ghudson at dorothylane dot com Reported by: ghudson at dorothylane dot com Summary: Binding parameters not sending full value -Status: Open +Status: Closed Type: Bug Package: ODBC related Operating System: Windows Server 2012 R2 Standard PHP Version: 7.1.22 Block user comment: N Private report: N New Comment: Redacting this bug report, because in my haste to figure this out, I didn't even try the same commands in a different language. Just encountered the same issue in Perl. Previous Comments: ------------------------------------------------------------------------ [2018-09-21 20:09:01] ghudson at dorothylane dot com 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 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=76917&edit=1

« previous php.bugs (#217190) next »