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

From: Date: Fri, 21 Sep 2018 21:13:03 +0000
Subject: Bug #76917 [Csd->Nab]: Binding parameters not sending full value
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-217191@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 Updated by: cmb@php.net Reported by: ghudson at dorothylane dot com Summary: Binding parameters not sending full value -Status: Closed +Status: Not a bug Type: Bug Package: ODBC related Operating System: Windows Server 2012 R2 Standard PHP Version: 7.1.22 Assigned To: cmb Block user comment: N Private report: N Previous Comments: ------------------------------------------------------------------------ [2018-09-21 20:35:47] ghudson at dorothylane dot com 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. ------------------------------------------------------------------------ [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 (#217191) next »