Bug #76917 [Csd->Nab]: Binding parameters not sending full value
| From: | cmb@php.net | 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