php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #80868 Missing bytes with DB2 column type LOB
Submitted: 2021-03-15 12:34 UTC Modified: 2021-03-18 13:35 UTC
From: rick dot meertens at gmail dot com Assigned:
Status: Open Package: PDO ODBC
PHP Version: 7.3.27 OS: Windows
Private report: No CVE-ID: None
View Add Comment Developer Edit
Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know!
Just going to say 'Me too!'? Don't clutter the database with that please — but make sure to vote on the bug!
Your email address:
MUST BE VALID
Solve the problem:
28 + 48 = ?
Subscribe to this entry?

 
 [2021-03-15 12:34 UTC] rick dot meertens at gmail dot com
Description:
------------
While reading a BLOB(1MB) field from an AS400 DB2 database with the PDO ODBC - IBM i Access ODBC driver we are missing 7 hex chars every 255th position in the stream.

I am using PHP 7.3.27 with the underlying IBMiAccess_v1r1_WindowsAP_English v1.1.8.6 ODBC driver.


-Install the IBM iAccess ODBC driver.
-Enable PHP extension pdo_odbc.
-Create a column with type blob and length 1048576;
-Fill a blob field with:
		for($i = 0; $i<50; $i++)		
		{
			$blobData=$blobData."abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
		}		

-Read it with script below.



Test script:
---------------
//credentials
$db_host = '';
$db_user = '';
$db_pass = '';
$table = '';
$blob_field = '';
$id_field = '';
$id = '';
$connection = new PDO("odbc:Driver={iSeries Access ODBC Driver};System=$db_host;UID=$db_user;PWD=$db_pass;");
$sql = "SELECT $blob_field FROM $table WHERE $id_field  = ?";
$stmt = $connection->prepare($sql);
if(!$stmt) {throw new Exception("Error while executing prepare: $sql [".$connection->errorInfo()."]");}
if(!$stmt->execute(array($id))) { throw new Exception("Error while executing query() execute: $sql [".$connection->errorInfo()."]");}
$stmt->bindColumn(1, $lob, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);
echo $lob;
//hexToAscii($lob)

Expected result:
----------------
6162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A30313233343536373839
6162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A30313233343536373839
6162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A30313233343536373839
6162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A30313233343536373839
6162636465666768696A666C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A30313233343536373839
6162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A30313233343536373839
6162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A30313233343536373839
6162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A30313233343536373839
61626364 etcetera

Actual result:
--------------
6162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A30313233343536373839
6162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A30313233343536373839
6162636 68696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A30313233343536373839
6162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A30313233343536373839
6162636465666768696A66       F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A30313233343536373839
6162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A30313233343536373839
6162636465666768696A6B6C6D6E6F70717       767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A30313233343536373839
61626364 etcetera

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2021-03-15 12:52 UTC] cmb@php.net
-Status: Open +Status: Feedback -Assigned To: +Assigned To: cmb
 [2021-03-15 12:52 UTC] cmb@php.net
That may have the same root cause as bug #80783.  Could you please
make an ODBC trace of the script available somewhere (posting as
comment to the bug tracker as a last resort)?  And could you also
try with PR 6716[1] which is supposed to fix this issue?

[1] <https://github.com/php/php-src/pull/6716>
 [2021-03-15 13:56 UTC] rick dot meertens at gmail dot com
php.exe test    30b8-29b0	ENTER SQLSetEnvAttr 
		SQLHENV             0x0000000000000000
		SQLINTEGER                 201 <SQL_ATTR_CONNECTION_POOLING>
		SQLPOINTER                 2 <SQL_CP_ONE_PER_HENV>
		SQLINTEGER                   0 

php.exe test    30b8-29b0	EXIT  SQLSetEnvAttr  with return code 0 (SQL_SUCCESS)
		SQLHENV             0x0000000000000000
		SQLINTEGER                 201 <SQL_ATTR_CONNECTION_POOLING>
		SQLPOINTER                 2 <SQL_CP_ONE_PER_HENV>
		SQLINTEGER                   0 

php.exe test    30b8-29b0	ENTER SQLAllocHandle 
		SQLSMALLINT                  1 <SQL_HANDLE_ENV>
		SQLHANDLE           0x0000000000000000
		SQLHANDLE *         0x000000000E270500

php.exe test    30b8-29b0	EXIT  SQLAllocHandle  with return code 0 (SQL_SUCCESS)
		SQLSMALLINT                  1 <SQL_HANDLE_ENV>
		SQLHANDLE           0x0000000000000000
		SQLHANDLE *         0x000000000E270500 ( 0x0000000004497450)

php.exe test    30b8-29b0	ENTER SQLSetEnvAttr 
		SQLHENV             0x0000000004497450
		SQLINTEGER                 200 <SQL_ATTR_ODBC_VERSION>
		SQLPOINTER                 3 <SQL_OV_ODBC3>
		SQLINTEGER                   0 

php.exe test    30b8-29b0	EXIT  SQLSetEnvAttr  with return code 0 (SQL_SUCCESS)
		SQLHENV             0x0000000004497450
		SQLINTEGER                 200 <SQL_ATTR_ODBC_VERSION>
		SQLPOINTER                 3 <SQL_OV_ODBC3>
		SQLINTEGER                   0 

php.exe test    30b8-29b0	ENTER SQLSetEnvAttr 
		SQLHENV             0x0000000004497450
		SQLINTEGER                 202 <SQL_ATTR_CP_MATCH>
		SQLPOINTER                 0 <SQL_CP_STRICT_MATCH>
		SQLINTEGER                   0 

php.exe test    30b8-29b0	EXIT  SQLSetEnvAttr  with return code 0 (SQL_SUCCESS)
		SQLHENV             0x0000000004497450
		SQLINTEGER                 202 <SQL_ATTR_CP_MATCH>
		SQLPOINTER                 0 <SQL_CP_STRICT_MATCH>
		SQLINTEGER                   0 

php.exe test    30b8-29b0	ENTER SQLAllocHandle 
		SQLSMALLINT                  2 <SQL_HANDLE_DBC>
		SQLHANDLE           0x0000000004497450
		SQLHANDLE *         0x000000000E270508

php.exe test    30b8-29b0	EXIT  SQLAllocHandle  with return code 0 (SQL_SUCCESS)
		SQLSMALLINT                  2 <SQL_HANDLE_DBC>
		SQLHANDLE           0x0000000004497450
		SQLHANDLE *         0x000000000E270508 ( 0x000000000449CF20)

php.exe test    30b8-29b0	ENTER SQLSetConnectAttr 
		SQLHDBC             0x000000000449CF20
		SQLINTEGER                 102 <SQL_ATTR_AUTOCOMMIT>
		SQLPOINTER                 1 <SQL_AUTOCOMMIT_ON>
		SQLINTEGER                  -6 

php.exe test    30b8-29b0	EXIT  SQLSetConnectAttr  with return code 0 (SQL_SUCCESS)
		SQLHDBC             0x000000000449CF20
		SQLINTEGER                 102 <SQL_ATTR_AUTOCOMMIT>
		SQLPOINTER                 1 <SQL_AUTOCOMMIT_ON>
		SQLINTEGER                  -6 

php.exe test    30b8-29b0	ENTER SQLSetConnectAttr 
		SQLHDBC             0x000000000449CF20
		SQLINTEGER                 110 <SQL_ATTR_ODBC_CURSORS>
		SQLPOINTER                 0 <SQL_CUR_USE_IF_NEEDED>
		SQLINTEGER                  -6 

php.exe test    30b8-29b0	EXIT  SQLSetConnectAttr  with return code 0 (SQL_SUCCESS)
		SQLHDBC             0x000000000449CF20
		SQLINTEGER                 110 <SQL_ATTR_ODBC_CURSORS>
		SQLPOINTER                 0 <SQL_CUR_USE_IF_NEEDED>
		SQLINTEGER                  -6 

php.exe test    30b8-29b0	ENTER SQLDriverConnectW 
		HDBC                0x000000000449CF20
		HWND                0x0000000000000000
		WCHAR *             0x000007FEF2C18F08 [      -3] "******\ 0"
		SWORD                       -3 
		WCHAR *             0x000007FEF2C18F08 
		SWORD                       -3 
		SWORD *             0x0000000000000000
		UWORD                        0 <SQL_DRIVER_NOPROMPT>

php.exe test    30b8-29b0	EXIT  SQLDriverConnectW  with return code 0 (SQL_SUCCESS)
		HDBC                0x000000000449CF20
		HWND                0x0000000000000000
		WCHAR *             0x000007FEF2C18F08 [      -3] "******\ 0"
		SWORD                       -3 
		WCHAR *             0x000007FEF2C18F08 <Invalid buffer length!> [-3]
		SWORD                       -3 
		SWORD *             0x0000000000000000
		UWORD                        0 <SQL_DRIVER_NOPROMPT>

php.exe test    30b8-29b0	ENTER SQLAllocHandle 
		SQLSMALLINT                  3 <SQL_HANDLE_STMT>
		SQLHANDLE           0x000000000449CF20
		SQLHANDLE *         0x000000000E270780

php.exe test    30b8-29b0	EXIT  SQLAllocHandle  with return code 0 (SQL_SUCCESS)
		SQLSMALLINT                  3 <SQL_HANDLE_STMT>
		SQLHANDLE           0x000000000449CF20
		SQLHANDLE *         0x000000000E270780 ( 0x000000000449D3D0)

php.exe test    30b8-29b0	ENTER SQLPrepare 
		HSTMT               0x000000000449D3D0
		UCHAR *             0x000000000E2891F8 [      -3] "SELECT FORMTEKST FROM flwtstdta.FRM111P WHERE UITVOERID  = ?\ 0"
		SDWORD                    -3

php.exe test    30b8-29b0	EXIT  SQLPrepare  with return code 0 (SQL_SUCCESS)
		HSTMT               0x000000000449D3D0
		UCHAR *             0x000000000E2891F8 [      -3] "SELECT FORMTEKST FROM flwtstdta.FRM111P WHERE UITVOERID  = ?\ 0"
		SDWORD                    -3

php.exe test    30b8-29b0	ENTER SQLDescribeParam 
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD *             0x000000000415DCD0
		SQLULEN *           0x000000000415DCE0
		SWORD *             0x000000000415DCD4
		SWORD *             0x000000000415DCD8

php.exe test    30b8-29b0	EXIT  SQLDescribeParam  with return code 0 (SQL_SUCCESS)
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD *             0x000000000415DCD0 (3)
		SQLULEN *           0x000000000415DCE0 (7)
		SWORD *             0x000000000415DCD4 (0)
		SWORD *             0x000000000415DCD8 (1)

php.exe test    30b8-29b0	ENTER SQLBindParameter 
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_PARAM_INPUT>
		SWORD                        1 <SQL_C_CHAR>
		SWORD                        3 <SQL_DECIMAL>
		SQLULEN                    7
		SWORD                        0 
		PTR                0x000000000E26D6E0
		SQLLEN                     0
		SQLLEN *            0x000000000E260640

php.exe test    30b8-29b0	EXIT  SQLBindParameter  with return code 0 (SQL_SUCCESS)
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_PARAM_INPUT>
		SWORD                        1 <SQL_C_CHAR>
		SWORD                        3 <SQL_DECIMAL>
		SQLULEN                    7
		SWORD                        0 
		PTR                0x000000000E26D6E0
		SQLLEN                     0
		SQLLEN *            0x000000000E260640 (0)

php.exe test    30b8-29b0	ENTER SQLExecute 
		HSTMT               0x000000000449D3D0

php.exe test    30b8-29b0	EXIT  SQLExecute  with return code 99 (SQL_NEED_DATA)
		HSTMT               0x000000000449D3D0

php.exe test    30b8-29b0	ENTER SQLParamData 
		HSTMT               0x000000000449D3D0
		PTR *              0x000000000415DE00

php.exe test    30b8-29b0	EXIT  SQLParamData  with return code 99 (SQL_NEED_DATA)
		HSTMT               0x000000000449D3D0
		PTR *              0x000000000415DE00

php.exe test    30b8-29b0	ENTER SQLPutData 
		HSTMT               0x000000000449D3D0
		PTR                0x000000000E298178
		SQLLEN                     7

php.exe test    30b8-29b0	EXIT  SQLPutData  with return code 0 (SQL_SUCCESS)
		HSTMT               0x000000000449D3D0
		PTR                0x000000000E298178
		SQLLEN                     7

php.exe test    30b8-29b0	ENTER SQLParamData 
		HSTMT               0x000000000449D3D0
		PTR *              0x000000000415DE00

php.exe test    30b8-29b0	EXIT  SQLParamData  with return code 0 (SQL_SUCCESS)
		HSTMT               0x000000000449D3D0
		PTR *              0x000000000415DE00

php.exe test    30b8-29b0	ENTER SQLRowCount 
		HSTMT               0x000000000449D3D0
		SQLLEN *            0x000000000415DE08

php.exe test    30b8-29b0	EXIT  SQLRowCount  with return code 0 (SQL_SUCCESS)
		HSTMT               0x000000000449D3D0
		SQLLEN *            0x000000000415DE08 (-1)

php.exe test    30b8-29b0	ENTER SQLNumResultCols 
		HSTMT               0x000000000449D3D0
		SWORD *             0x000000000415DE00

php.exe test    30b8-29b0	EXIT  SQLNumResultCols  with return code 0 (SQL_SUCCESS)
		HSTMT               0x000000000449D3D0
		SWORD *             0x000000000415DE00 (1)

php.exe test    30b8-29b0	ENTER SQLDescribeCol 
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		UCHAR *             0x000000000E29D55A 
		SWORD                      127 
		SWORD *             0x000000000415DDD8
		SWORD *             0x000000000E29D558
		SQLULEN *           0x000000000415DDD0
		SWORD *             0x0000000000000000
		SWORD *             0x0000000000000000

php.exe test    30b8-29b0	EXIT  SQLDescribeCol  with return code 0 (SQL_SUCCESS)
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		UCHAR *             0x000000000E29D55A [       9] "FORMTEKST"
		SWORD                      127 
		SWORD *             0x000000000415DDD8 (9)
		SWORD *             0x000000000E29D558 (-4)
		SQLULEN *           0x000000000415DDD0 (1048576)
		SWORD *             0x0000000000000000
		SWORD *             0x0000000000000000

php.exe test    30b8-29b0	ENTER SQLColAttribute 
		SQLHSTMT            0x000000000449D3D0
		SQLSMALLINT                  1 
		SQLSMALLINT                  6 <SQL_DESC_DISPLAY_SIZE>
		SQLPOINTER         0x0000000000000000
		SQLSMALLINT                  0 
		SQLSMALLINT *       0x0000000000000000
		SQLPOINTER          0x000000000415DDE0

php.exe test    30b8-29b0	EXIT  SQLColAttribute  with return code 0 (SQL_SUCCESS)
		SQLHSTMT            0x000000000449D3D0
		SQLSMALLINT                  1 
		SQLSMALLINT                  6 <SQL_DESC_DISPLAY_SIZE>
		SQLPOINTER         0x0000000000000000
		SQLSMALLINT                  0 
		SQLSMALLINT *       0x0000000000000000
		SQLPOINTER          0x000000000415DDE0 (2097152)

php.exe test    30b8-29b0	ENTER SQLFetchScroll 
		SQLHSTMT            0x000000000449D3D0
		SQLSMALLINT                  1 <SQL_FETCH_NEXT>
		SQLLEN                     0

php.exe test    30b8-29b0	EXIT  SQLFetchScroll  with return code 0 (SQL_SUCCESS)
		SQLHSTMT            0x000000000449D3D0
		SQLSMALLINT                  1 <SQL_FETCH_NEXT>
		SQLLEN                     0

php.exe test    30b8-29b0	ENTER SQLGetData 
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299300 
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550

php.exe test    30b8-29b0	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299300 [     256] "6162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550 (3100)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    30b8-29b0	ENTER SQLGetData 
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550

php.exe test    30b8-29b0	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 [     256] "68696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550 (2845)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    30b8-29b0	ENTER SQLGetData 
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550

php.exe test    30b8-29b0	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 [     256] "6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F70717\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550 (2590)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    30b8-29b0	ENTER SQLGetData 
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550

php.exe test    30b8-29b0	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 [     256] "767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F7071727374757677787\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550 (2335)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    30b8-29b0	ENTER SQLGetData 
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550

php.exe test    30b8-29b0	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 [     256] "434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A41424344454\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550 (2080)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    30b8-29b0	ENTER SQLGetData 
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550

php.exe test    30b8-29b0	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 [     256] "4A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550 (1825)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    30b8-29b0	ENTER SQLGetData 
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550

php.exe test    30b8-29b0	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 [     256] "5152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550 (1570)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    30b8-29b0	ENTER SQLGetData 
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550

php.exe test    30b8-29b0	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 [     256] "58595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A3\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550 (1315)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    30b8-29b0	ENTER SQLGetData 
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550

php.exe test    30b8-29b0	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 [     256] "3435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550 (1060)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    30b8-29b0	ENTER SQLGetData 
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550

php.exe test    30b8-29b0	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 [     256] "62636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A30313233343536373839616263646\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550 (805)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    30b8-29b0	ENTER SQLGetData 
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550

php.exe test    30b8-29b0	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 [     256] "696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550 (550)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    30b8-29b0	ENTER SQLGetData 
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550

php.exe test    30b8-29b0	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 [     256] "707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F7071727\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550 (295)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    30b8-29b0	ENTER SQLGetData 
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550

php.exe test    30b8-29b0	EXIT  SQLGetData  with return code 0 (SQL_SUCCESS)
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 [      80] "7778797A4142434445464748494A4B4C4D4E4F505152535455565758595A30313233343536373839"
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550 (80)

php.exe test    30b8-29b0	ENTER SQLGetData 
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550

php.exe test    30b8-29b0	EXIT  SQLGetData  with return code 100 (SQL_NO_DATA_FOUND)
		HSTMT               0x000000000449D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E299500 
		SQLLEN                   256
		SQLLEN *            0x000000000E29D550

php.exe test    30b8-29b0	ENTER SQLCloseCursor 
		SQLHSTMT            0x000000000449D3D0

php.exe test    30b8-29b0	EXIT  SQLCloseCursor  with return code 0 (SQL_SUCCESS)
		SQLHSTMT            0x000000000449D3D0

php.exe test    30b8-29b0	ENTER SQLFreeHandle 
		SQLSMALLINT                  3 <SQL_HANDLE_STMT>
		SQLHANDLE           0x000000000449D3D0

php.exe test    30b8-29b0	EXIT  SQLFreeHandle  with return code 0 (SQL_SUCCESS)
		SQLSMALLINT                  3 <SQL_HANDLE_STMT>
		SQLHANDLE           0x000000000449D3D0

php.exe test    30b8-29b0	ENTER SQLEndTran 
		SQLSMALLINT                  2 <SQL_HANDLE_DBC>
		SQLHANDLE           0x000000000449CF20
		SQLSMALLINT                  1 

php.exe test    30b8-29b0	EXIT  SQLEndTran  with return code 0 (SQL_SUCCESS)
		SQLSMALLINT                  2 <SQL_HANDLE_DBC>
		SQLHANDLE           0x000000000449CF20
		SQLSMALLINT                  1 

php.exe test    30b8-29b0	ENTER SQLDisconnect 
		HDBC                0x000000000449CF20

php.exe test    30b8-29b0	EXIT  SQLDisconnect  with return code 0 (SQL_SUCCESS)
		HDBC                0x000000000449CF20

php.exe test    30b8-29b0	ENTER SQLFreeHandle 
		SQLSMALLINT                  2 <SQL_HANDLE_DBC>
		SQLHANDLE           0x000000000449CF20

php.exe test    30b8-29b0	EXIT  SQLFreeHandle  with return code 0 (SQL_SUCCESS)
		SQLSMALLINT                  2 <SQL_HANDLE_DBC>
		SQLHANDLE           0x000000000449CF20

php.exe test    30b8-29b0	ENTER SQLFreeHandle 
		SQLSMALLINT                  1 <SQL_HANDLE_ENV>
		SQLHANDLE           0x0000000004497450

php.exe test    30b8-29b0	EXIT  SQLFreeHandle  with return code 0 (SQL_SUCCESS)
		SQLSMALLINT                  1 <SQL_HANDLE_ENV>
		SQLHANDLE           0x0000000004497450

php.exe test    32fc-3010	ENTER SQLSetEnvAttr 
		SQLHENV             0x0000000000000000
		SQLINTEGER                 201 <SQL_ATTR_CONNECTION_POOLING>
		SQLPOINTER                 2 <SQL_CP_ONE_PER_HENV>
		SQLINTEGER                   0 

php.exe test    32fc-3010	EXIT  SQLSetEnvAttr  with return code 0 (SQL_SUCCESS)
		SQLHENV             0x0000000000000000
		SQLINTEGER                 201 <SQL_ATTR_CONNECTION_POOLING>
		SQLPOINTER                 2 <SQL_CP_ONE_PER_HENV>
		SQLINTEGER                   0 

php.exe test    32fc-3010	ENTER SQLAllocHandle 
		SQLSMALLINT                  1 <SQL_HANDLE_ENV>
		SQLHANDLE           0x0000000000000000
		SQLHANDLE *         0x000000000E470500

php.exe test    32fc-3010	EXIT  SQLAllocHandle  with return code 0 (SQL_SUCCESS)
		SQLSMALLINT                  1 <SQL_HANDLE_ENV>
		SQLHANDLE           0x0000000000000000
		SQLHANDLE *         0x000000000E470500 ( 0x0000000004707450)

php.exe test    32fc-3010	ENTER SQLSetEnvAttr 
		SQLHENV             0x0000000004707450
		SQLINTEGER                 200 <SQL_ATTR_ODBC_VERSION>
		SQLPOINTER                 3 <SQL_OV_ODBC3>
		SQLINTEGER                   0 

php.exe test    32fc-3010	EXIT  SQLSetEnvAttr  with return code 0 (SQL_SUCCESS)
		SQLHENV             0x0000000004707450
		SQLINTEGER                 200 <SQL_ATTR_ODBC_VERSION>
		SQLPOINTER                 3 <SQL_OV_ODBC3>
		SQLINTEGER                   0 

php.exe test    32fc-3010	ENTER SQLSetEnvAttr 
		SQLHENV             0x0000000004707450
		SQLINTEGER                 202 <SQL_ATTR_CP_MATCH>
		SQLPOINTER                 0 <SQL_CP_STRICT_MATCH>
		SQLINTEGER                   0 

php.exe test    32fc-3010	EXIT  SQLSetEnvAttr  with return code 0 (SQL_SUCCESS)
		SQLHENV             0x0000000004707450
		SQLINTEGER                 202 <SQL_ATTR_CP_MATCH>
		SQLPOINTER                 0 <SQL_CP_STRICT_MATCH>
		SQLINTEGER                   0 

php.exe test    32fc-3010	ENTER SQLAllocHandle 
		SQLSMALLINT                  2 <SQL_HANDLE_DBC>
		SQLHANDLE           0x0000000004707450
		SQLHANDLE *         0x000000000E470508

php.exe test    32fc-3010	EXIT  SQLAllocHandle  with return code 0 (SQL_SUCCESS)
		SQLSMALLINT                  2 <SQL_HANDLE_DBC>
		SQLHANDLE           0x0000000004707450
		SQLHANDLE *         0x000000000E470508 ( 0x000000000470CF20)

php.exe test    32fc-3010	ENTER SQLSetConnectAttr 
		SQLHDBC             0x000000000470CF20
		SQLINTEGER                 102 <SQL_ATTR_AUTOCOMMIT>
		SQLPOINTER                 1 <SQL_AUTOCOMMIT_ON>
		SQLINTEGER                  -6 

php.exe test    32fc-3010	EXIT  SQLSetConnectAttr  with return code 0 (SQL_SUCCESS)
		SQLHDBC             0x000000000470CF20
		SQLINTEGER                 102 <SQL_ATTR_AUTOCOMMIT>
		SQLPOINTER                 1 <SQL_AUTOCOMMIT_ON>
		SQLINTEGER                  -6 

php.exe test    32fc-3010	ENTER SQLSetConnectAttr 
		SQLHDBC             0x000000000470CF20
		SQLINTEGER                 110 <SQL_ATTR_ODBC_CURSORS>
		SQLPOINTER                 0 <SQL_CUR_USE_IF_NEEDED>
		SQLINTEGER                  -6 

php.exe test    32fc-3010	EXIT  SQLSetConnectAttr  with return code 0 (SQL_SUCCESS)
		SQLHDBC             0x000000000470CF20
		SQLINTEGER                 110 <SQL_ATTR_ODBC_CURSORS>
		SQLPOINTER                 0 <SQL_CUR_USE_IF_NEEDED>
		SQLINTEGER                  -6 

php.exe test    32fc-3010	ENTER SQLDriverConnectW 
		HDBC                0x000000000470CF20
		HWND                0x0000000000000000
		WCHAR *             0x000007FEF2C18F08 [      -3] "******\ 0"
		SWORD                       -3 
		WCHAR *             0x000007FEF2C18F08 
		SWORD                       -3 
		SWORD *             0x0000000000000000
		UWORD                        0 <SQL_DRIVER_NOPROMPT>

php.exe test    32fc-3010	EXIT  SQLDriverConnectW  with return code 0 (SQL_SUCCESS)
		HDBC                0x000000000470CF20
		HWND                0x0000000000000000
		WCHAR *             0x000007FEF2C18F08 [      -3] "******\ 0"
		SWORD                       -3 
		WCHAR *             0x000007FEF2C18F08 <Invalid buffer length!> [-3]
		SWORD                       -3 
		SWORD *             0x0000000000000000
		UWORD                        0 <SQL_DRIVER_NOPROMPT>

php.exe test    32fc-3010	ENTER SQLAllocHandle 
		SQLSMALLINT                  3 <SQL_HANDLE_STMT>
		SQLHANDLE           0x000000000470CF20
		SQLHANDLE *         0x000000000E470780

php.exe test    32fc-3010	EXIT  SQLAllocHandle  with return code 0 (SQL_SUCCESS)
		SQLSMALLINT                  3 <SQL_HANDLE_STMT>
		SQLHANDLE           0x000000000470CF20
		SQLHANDLE *         0x000000000E470780 ( 0x000000000470D3D0)

php.exe test    32fc-3010	ENTER SQLPrepare 
		HSTMT               0x000000000470D3D0
		UCHAR *             0x000000000E4891F8 [      -3] "SELECT FORMTEKST FROM flwtstdta.FRM111P WHERE UITVOERID  = ?\ 0"
		SDWORD                    -3

php.exe test    32fc-3010	EXIT  SQLPrepare  with return code 0 (SQL_SUCCESS)
		HSTMT               0x000000000470D3D0
		UCHAR *             0x000000000E4891F8 [      -3] "SELECT FORMTEKST FROM flwtstdta.FRM111P WHERE UITVOERID  = ?\ 0"
		SDWORD                    -3

php.exe test    32fc-3010	ENTER SQLDescribeParam 
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD *             0x000000000406DE20
		SQLULEN *           0x000000000406DE30
		SWORD *             0x000000000406DE24
		SWORD *             0x000000000406DE28

php.exe test    32fc-3010	EXIT  SQLDescribeParam  with return code 0 (SQL_SUCCESS)
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD *             0x000000000406DE20 (3)
		SQLULEN *           0x000000000406DE30 (7)
		SWORD *             0x000000000406DE24 (0)
		SWORD *             0x000000000406DE28 (1)

php.exe test    32fc-3010	ENTER SQLBindParameter 
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_PARAM_INPUT>
		SWORD                        1 <SQL_C_CHAR>
		SWORD                        3 <SQL_DECIMAL>
		SQLULEN                    7
		SWORD                        0 
		PTR                0x000000000E46D6E0
		SQLLEN                     0
		SQLLEN *            0x000000000E460640

php.exe test    32fc-3010	EXIT  SQLBindParameter  with return code 0 (SQL_SUCCESS)
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_PARAM_INPUT>
		SWORD                        1 <SQL_C_CHAR>
		SWORD                        3 <SQL_DECIMAL>
		SQLULEN                    7
		SWORD                        0 
		PTR                0x000000000E46D6E0
		SQLLEN                     0
		SQLLEN *            0x000000000E460640 (0)

php.exe test    32fc-3010	ENTER SQLExecute 
		HSTMT               0x000000000470D3D0

php.exe test    32fc-3010	EXIT  SQLExecute  with return code 99 (SQL_NEED_DATA)
		HSTMT               0x000000000470D3D0

php.exe test    32fc-3010	ENTER SQLParamData 
		HSTMT               0x000000000470D3D0
		PTR *              0x000000000406DF50

php.exe test    32fc-3010	EXIT  SQLParamData  with return code 99 (SQL_NEED_DATA)
		HSTMT               0x000000000470D3D0
		PTR *              0x000000000406DF50

php.exe test    32fc-3010	ENTER SQLPutData 
		HSTMT               0x000000000470D3D0
		PTR                0x000000000E498178
		SQLLEN                     7

php.exe test    32fc-3010	EXIT  SQLPutData  with return code 0 (SQL_SUCCESS)
		HSTMT               0x000000000470D3D0
		PTR                0x000000000E498178
		SQLLEN                     7

php.exe test    32fc-3010	ENTER SQLParamData 
		HSTMT               0x000000000470D3D0
		PTR *              0x000000000406DF50

php.exe test    32fc-3010	EXIT  SQLParamData  with return code 0 (SQL_SUCCESS)
		HSTMT               0x000000000470D3D0
		PTR *              0x000000000406DF50

php.exe test    32fc-3010	ENTER SQLRowCount 
		HSTMT               0x000000000470D3D0
		SQLLEN *            0x000000000406DF58

php.exe test    32fc-3010	EXIT  SQLRowCount  with return code 0 (SQL_SUCCESS)
		HSTMT               0x000000000470D3D0
		SQLLEN *            0x000000000406DF58 (-1)

php.exe test    32fc-3010	ENTER SQLNumResultCols 
		HSTMT               0x000000000470D3D0
		SWORD *             0x000000000406DF50

php.exe test    32fc-3010	EXIT  SQLNumResultCols  with return code 0 (SQL_SUCCESS)
		HSTMT               0x000000000470D3D0
		SWORD *             0x000000000406DF50 (1)

php.exe test    32fc-3010	ENTER SQLDescribeCol 
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		UCHAR *             0x000000000E49D55A 
		SWORD                      127 
		SWORD *             0x000000000406DF28
		SWORD *             0x000000000E49D558
		SQLULEN *           0x000000000406DF20
		SWORD *             0x0000000000000000
		SWORD *             0x0000000000000000

php.exe test    32fc-3010	EXIT  SQLDescribeCol  with return code 0 (SQL_SUCCESS)
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		UCHAR *             0x000000000E49D55A [       9] "FORMTEKST"
		SWORD                      127 
		SWORD *             0x000000000406DF28 (9)
		SWORD *             0x000000000E49D558 (-4)
		SQLULEN *           0x000000000406DF20 (1048576)
		SWORD *             0x0000000000000000
		SWORD *             0x0000000000000000

php.exe test    32fc-3010	ENTER SQLColAttribute 
		SQLHSTMT            0x000000000470D3D0
		SQLSMALLINT                  1 
		SQLSMALLINT                  6 <SQL_DESC_DISPLAY_SIZE>
		SQLPOINTER         0x0000000000000000
		SQLSMALLINT                  0 
		SQLSMALLINT *       0x0000000000000000
		SQLPOINTER          0x000000000406DF30

php.exe test    32fc-3010	EXIT  SQLColAttribute  with return code 0 (SQL_SUCCESS)
		SQLHSTMT            0x000000000470D3D0
		SQLSMALLINT                  1 
		SQLSMALLINT                  6 <SQL_DESC_DISPLAY_SIZE>
		SQLPOINTER         0x0000000000000000
		SQLSMALLINT                  0 
		SQLSMALLINT *       0x0000000000000000
		SQLPOINTER          0x000000000406DF30 (2097152)

php.exe test    32fc-3010	ENTER SQLFetchScroll 
		SQLHSTMT            0x000000000470D3D0
		SQLSMALLINT                  1 <SQL_FETCH_NEXT>
		SQLLEN                     0

php.exe test    32fc-3010	EXIT  SQLFetchScroll  with return code 0 (SQL_SUCCESS)
		SQLHSTMT            0x000000000470D3D0
		SQLSMALLINT                  1 <SQL_FETCH_NEXT>
		SQLLEN                     0

php.exe test    32fc-3010	ENTER SQLGetData 
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499300 
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550

php.exe test    32fc-3010	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499300 [     256] "6162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550 (3100)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    32fc-3010	ENTER SQLGetData 
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550

php.exe test    32fc-3010	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 [     256] "68696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550 (2845)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    32fc-3010	ENTER SQLGetData 
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550

php.exe test    32fc-3010	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 [     256] "6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F70717\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550 (2590)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    32fc-3010	ENTER SQLGetData 
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550

php.exe test    32fc-3010	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 [     256] "767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F7071727374757677787\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550 (2335)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    32fc-3010	ENTER SQLGetData 
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550

php.exe test    32fc-3010	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 [     256] "434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A41424344454\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550 (2080)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    32fc-3010	ENTER SQLGetData 
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550

php.exe test    32fc-3010	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 [     256] "4A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550 (1825)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    32fc-3010	ENTER SQLGetData 
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550

php.exe test    32fc-3010	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 [     256] "5152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550 (1570)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    32fc-3010	ENTER SQLGetData 
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550

php.exe test    32fc-3010	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 [     256] "58595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A3\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550 (1315)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    32fc-3010	ENTER SQLGetData 
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550

php.exe test    32fc-3010	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 [     256] "3435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550 (1060)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    32fc-3010	ENTER SQLGetData 
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550

php.exe test    32fc-3010	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 [     256] "62636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A30313233343536373839616263646\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550 (805)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    32fc-3010	ENTER SQLGetData 
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550

php.exe test    32fc-3010	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 [     256] "696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550 (550)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    32fc-3010	ENTER SQLGetData 
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550

php.exe test    32fc-3010	EXIT  SQLGetData  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 [     256] "707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F707172737475767778797A4142434445464748494A4B4C4D4E4F505152535455565758595A303132333435363738396162636465666768696A6B6C6D6E6F7071727\ 0"
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550 (295)

		DIAG [01004] [IBM][System i Access ODBC Driver]String data right truncation. (30016) 

		DIAG [01004] [IBM][System i Access ODBC Driver]Column 1: Data truncated. (30196) 

php.exe test    32fc-3010	ENTER SQLGetData 
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550

php.exe test    32fc-3010	EXIT  SQLGetData  with return code 0 (SQL_SUCCESS)
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 [      80] "7778797A4142434445464748494A4B4C4D4E4F505152535455565758595A30313233343536373839"
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550 (80)

php.exe test    32fc-3010	ENTER SQLGetData 
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550

php.exe test    32fc-3010	EXIT  SQLGetData  with return code 100 (SQL_NO_DATA_FOUND)
		HSTMT               0x000000000470D3D0
		UWORD                        1 
		SWORD                        1 <SQL_C_CHAR>
		PTR                 0x000000000E499500 
		SQLLEN                   256
		SQLLEN *            0x000000000E49D550

php.exe test    32fc-3010	ENTER SQLCloseCursor 
		SQLHSTMT            0x000000000470D3D0

php.exe test    32fc-3010	EXIT  SQLCloseCursor  with return code 0 (SQL_SUCCESS)
		SQLHSTMT            0x000000000470D3D0

php.exe test    32fc-3010	ENTER SQLFreeHandle 
		SQLSMALLINT                  3 <SQL_HANDLE_STMT>
		SQLHANDLE           0x000000000470D3D0

php.exe test    32fc-3010	EXIT  SQLFreeHandle  with return code 0 (SQL_SUCCESS)
		SQLSMALLINT                  3 <SQL_HANDLE_STMT>
		SQLHANDLE           0x000000000470D3D0

php.exe test    32fc-3010	ENTER SQLEndTran 
		SQLSMALLINT                  2 <SQL_HANDLE_DBC>
		SQLHANDLE           0x000000000470CF20
		SQLSMALLINT                  1 

php.exe test    32fc-3010	EXIT  SQLEndTran  with return code 0 (SQL_SUCCESS)
		SQLSMALLINT                  2 <SQL_HANDLE_DBC>
		SQLHANDLE           0x000000000470CF20
		SQLSMALLINT                  1 

php.exe test    32fc-3010	ENTER SQLDisconnect 
		HDBC                0x000000000470CF20

php.exe test    32fc-3010	EXIT  SQLDisconnect  with return code 0 (SQL_SUCCESS)
		HDBC                0x000000000470CF20

php.exe test    32fc-3010	ENTER SQLFreeHandle 
		SQLSMALLINT                  2 <SQL_HANDLE_DBC>
		SQLHANDLE           0x000000000470CF20

php.exe test    32fc-3010	EXIT  SQLFreeHandle  with return code 0 (SQL_SUCCESS)
		SQLSMALLINT                  2 <SQL_HANDLE_DBC>
		SQLHANDLE           0x000000000470CF20

php.exe test    32fc-3010	ENTER SQLFreeHandle 
		SQLSMALLINT                  1 <SQL_HANDLE_ENV>
		SQLHANDLE           0x0000000004707450

php.exe test    32fc-3010	EXIT  SQLFreeHandle  with return code 0 (SQL_SUCCESS)
		SQLSMALLINT                  1 <SQL_HANDLE_ENV>
		SQLHANDLE           0x0000000004707450
 [2021-03-15 14:19 UTC] cmb@php.net
-Status: Feedback +Status: Open
 [2021-03-15 14:19 UTC] cmb@php.net
Thank you for the ODBC trace!  According to that, this is not
directly related to the other bug, since SQLGetData() actually
returns 255 bytes with a single trailing NUL byte.  However, the
real problem seems to be that we're fetching binary data as
SQL_C_CHAR instead of SQL_C_BINARY which yields a result, which I
would *not* expect.  I would expect that result after bin2hex().
Apparently, you're already working around that with hexToAscii().
This is why we can't change that[1].

The missing bytes actually appear to a be a bug in the driver, but
that is likely to be considered to be an edge case, because we read
binary data as character data.  I'm not sure what to do about that;
maybe reading as binary, and converting to hex manually is actually
the best way forward.

Anyhow, please note that PHP 7.3 is out of active support (i.e. it
only receives security fixes), so any fix could target PHP 7.4
only.

[1] <https://github.com/php/php-src/pull/6716#issuecomment-785874231>
 [2021-03-16 10:50 UTC] cmb@php.net
-Assigned To: cmb +Assigned To:
 [2021-03-18 13:35 UTC] cmb@php.net
A possible workaround for the issue at hand would be to set the
PDO attribute ODBC_ATTR_ASSUME_UTF8 to true.  However, there is a
known bug so this will not work in current versions, but that is
likely to be fixed as of PHP 7.4.18.

[1] <https://www.php.net/manual/en/ref.pdo-odbc.php#pdo-odbc.constants>
 
PHP Copyright © 2001-2021 The PHP Group
All rights reserved.
Last updated: Tue Jun 15 20:01:23 2021 UTC