Bug #77132 [Fbk->Asn]: Issues in PDO_ODBC v1.0.1 using unixODBC v2.3.2
Edit report at https://bugs.php.net/bug.php?id=77132&edit=1
ID: 77132
User updated by: jake dot pogorelec at ntalife dot com
Reported by: jake dot pogorelec at ntalife dot com
Summary: Issues in PDO_ODBC v1.0.1 using unixODBC v2.3.2
-Status: Feedback
+Status: Assigned
Type: Bug
Package: PDO ODBC
Operating System: 64-Bit Centos 6
PHP Version: 7.1.24
Assigned To: cmb
Block user comment: N
Private report: N
New Comment:
Can you clarify possibly? The php module "pdo_odbc" (I believe) is just an interface
between PHP and the PDO_ODBC-1.0.1 package (the package is what includes odbc.ini and odbcinst.ini,
which is how the different databases connections are defined), isn't it?
I'm a little apprehensive about seeking out a different option because of dependency nonsense
that has the potential to destroy any sort of progress.. Also our handles are defined in many many
scripts so going through and finding and changing each one would be a very time consuming process..
I wouldnt say Im "completely" opposed to changing, provided the information is available
to fix things that come up. but that is definitely not ideal.
For example, when we started using this current setup there was a pretty major bug related to
varchar(max) (It would cause the length of a varchar max field to be reported as -1 and -1 would, in
one path, be interpreted as NULL. This null value would cause every other field that followed the
field in the select statement to be populated with NULL). This was huge pain to patch/fix.
I would like very much to avoid this type of problems going forward since solving them caused the
team a generous amount of stress...
Previous Comments:
------------------------------------------------------------------------
[2018-11-11 15:53:04] cmb@php.net
Is there any particular reason why you don't use the pdo_odbc
extensions which is bundled with PHP?
------------------------------------------------------------------------
[2018-11-09 21:56:30] jake dot pogorelec at ntalife dot com
Description:
------------
Im not sure this is where this belongs but I wasn't sure where to put it so Im posting it here,
please let me know if it needs to be somewhere else. We are in the process of upgrading from php
5.6.* to 7.1.* before the EOL early next month and ran into a snag. the snag seems to be due to
PHPNG changes https://wiki.php.net/phpng-upgrading) that were made
back in 7, but do not have solutions readily available.
Historicall we have used IUS to get compliant packages (Regular redhat repos are too old to be
compliant in the ways we need) and the we stimulate those with manually compiled packages.
One of the packages that we have been maintaining "manually" (building with phpize,
configure, "make", & "make install") after each php update is "PDO_ODBC
v1.0.1 using unixODBC v2.3.2" (we use this driver manager heavily for DB2 on iSeries, mysql,
AND Sql Server database connections).
The package has built pretty much without issue until the 5->7 upgrade process which has failed
and gotten a LOT of errors related to various Zend library methods I have been working my way
through with things I can fix, but I dont know how to fix the last few of them (most are related to
type mismatches such as "unary *", "zval", "struct zval *", . It seems
in 5.6 the Zend functions were alot different although some of the issues we fixed in the previous
version (changin SDWORD to SQLULEN, etc...)
Test script:
---------------
cd ./PDO_ODBC-1.0.1
phpize
./configure --with-pdo-odbc=unixODBC
make
Expected result:
----------------
Successful Build
Actual result:
--------------
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c: In function âodbc_stmt_executeâ:
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:183: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:186: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:186: error: incompatible type for argument 1 of
â_convert_to_stringâ
/usr/include/php/Zend/zend_operators.h:253: note: expected âstruct zval *â but argument is
of type âzvalâ
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:189: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:190: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:193: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:194: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c: In function âodbc_stmt_param_hookâ:
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:312: warning: passing argument 4 of
âSQLDescribeParamâ from incompatible pointer type
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:387: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:430: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:430: error: incompatible type for argument 1 of
â_convert_to_stringâ
/usr/include/php/Zend/zend_operators.h:253: note: expected âstruct zval *â but argument is
of type âzvalâ
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:432: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:433: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:435: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:438: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:441: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:441: error: incompatible type for argument 1 of
â_convert_to_stringâ
/usr/include/php/Zend/zend_operators.h:253: note: expected âstruct zval *â but argument is
of type âzvalâ
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:445: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:446: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:450: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:451: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:459: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:473: error: incompatible type for argument 1 of
â_zval_ptr_dtor_nogcâ
/usr/include/php/Zend/zend_variables.h:37: note: expected âstruct zval *â but argument is
of type âzvalâ
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:474: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:477: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:477: error: incompatible type for argument 1 of
â_convert_to_stringâ
/usr/include/php/Zend/zend_operators.h:253: note: expected âstruct zval *â but argument is
of type âzvalâ
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:491: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:491: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:492: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:493: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:494: error: invalid type argument of âunary *â
(have âzvalâ)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c: In function âodbc_stmt_describeâ:
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:552: warning: passing argument 7 of
âSQLDescribeColâ from incompatible pointer type
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:592: error: âstruct pdo_column_dataâ has no
member named ânamelenâ
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:593: warning: assignment from incompatible pointer type
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:787:34: error: macro "ZVAL_STRINGL" passed 4
arguments, but takes just 3
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c: In function âodbc_stmt_get_attrâ:
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:787: error: âZVAL_STRINGLâ undeclared (first use
in this function)
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:787: error: (Each undeclared identifier is reported only
once
/usr/local/lib/PDO_ODBC-1.0.1/odbc_stmt.c:787: error: for each function it appears in.)
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=77132&edit=1
Thread (6 messages)