Bug #76917 [Opn->Csd]: Binding parameters not sending full value
| From: | ghudson at dorothylane dot com | 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