ID:               35945
 Updated by:       [EMAIL PROTECTED]
 Reported By:      dbaffaleuf at ixis-cib dot com
-Status:           Open
+Status:           Feedback
 Bug Type:         Sybase-ct (ctlib) related
 Operating System: Linux 2.6.9-22 RedHat AMD64
 PHP Version:      5CVS, 4CVS (2006-01-11) (snap)
 New Comment:

Please try using this CVS snapshot:

  http://snaps.php.net/php5.2-latest.tar.gz
 
For Windows (zip):
 
  http://snaps.php.net/win32/php5.2-win32-latest.zip

For Windows (installer):

  http://snaps.php.net/win32/php5.2-win32-installer-latest.msi

Provide your patch as unified diff and in correct order, the one here
is reversed..and use the provided latest snapshot for it.


Previous Comments:
------------------------------------------------------------------------

[2007-04-25 23:09:46] sabapamu at mizuho-sc dot com

I experienced the same problem with PHP 5.2.1 on Intel x86_64 using
Sybase Open Client 15.0 64bit libraries.
Fix quoted by shawnf worked for me.

------------------------------------------------------------------------

[2006-02-04 16:59:25] shawnf at fletcher dot org dot za

here is a patch for php-5.1

it makes the module use the 64bit libraries and most importantly adds 

CFLAGS="${CFLAGS} -g -DSYB_LP64"

-----------------cut here------------------------


*** ext/sybase_ct/config.m4     2006-02-04 16:41:12.000000000 +0100
--- ext/sybase_ct/config.m4.old 2005-05-30 00:16:44.000000000 +0100
***************
*** 29,59 ****
    else
      AC_MSG_ERROR([ctpublic.h missing!])
    fi
-
-   CFLAGS="${CFLAGS} -g -DSYB_LP64"
-

    PHP_ADD_LIBPATH($SYBASE_CT_LIBDIR, SYBASE_CT_SHARED_LIBADD)
    if test -f $SYBASE_CT_INCDIR/tds.h; then
      PHP_ADD_LIBRARY(ct,, SYBASE_CT_SHARED_LIBADD)
!     SYBASE_CT_LIBS="-L$SYBASE_CT_LIBDIR -lct64"
    else
!     PHP_ADD_LIBRARY(cs64,, SYBASE_CT_SHARED_LIBADD)
!     PHP_ADD_LIBRARY(ct64,, SYBASE_CT_SHARED_LIBADD)
!     PHP_ADD_LIBRARY(comn64,, SYBASE_CT_SHARED_LIBADD)
!     PHP_ADD_LIBRARY(intl64,, SYBASE_CT_SHARED_LIBADD)

!     SYBASE_CT_LIBS="-L$SYBASE_CT_LIBDIR -lcs64 -lct64 -lcomn64
-lintl64"

!     PHP_CHECK_LIBRARY(tcl64, netg_errstr, [
!       PHP_ADD_LIBRARY(tcl64,,SYBASE_CT_SHARED_LIBADD)
      ],[
!       PHP_ADD_LIBRARY(sybtcl64,,SYBASE_CT_SHARED_LIBADD)
      ],[
        $SYBASE_CT_LIBS
      ])

!     PHP_CHECK_LIBRARY(insck64, insck__getVdate,
[PHP_ADD_LIBRARY(insck64,,
SYBASE_CT_SHARED_LIBADD)],[],[-L$SYBASE_CT_LIBDIR])
!     PHP_CHECK_LIBRARY(insck64, bsd_tcp,        
[PHP_ADD_LIBRARY(insck64,,
SYBASE_CT_SHARED_LIBADD)],[],[-L$SYBASE_CT_LIBDIR])
    fi
  fi
--- 29,56 ----
    else
      AC_MSG_ERROR([ctpublic.h missing!])
    fi

    PHP_ADD_LIBPATH($SYBASE_CT_LIBDIR, SYBASE_CT_SHARED_LIBADD)
    if test -f $SYBASE_CT_INCDIR/tds.h; then
      PHP_ADD_LIBRARY(ct,, SYBASE_CT_SHARED_LIBADD)
!     SYBASE_CT_LIBS="-L$SYBASE_CT_LIBDIR -lct"
    else
!     PHP_ADD_LIBRARY(cs,, SYBASE_CT_SHARED_LIBADD)
!     PHP_ADD_LIBRARY(ct,, SYBASE_CT_SHARED_LIBADD)
!     PHP_ADD_LIBRARY(comn,, SYBASE_CT_SHARED_LIBADD)
!     PHP_ADD_LIBRARY(intl,, SYBASE_CT_SHARED_LIBADD)

!     SYBASE_CT_LIBS="-L$SYBASE_CT_LIBDIR -lcs -lct -lcomn -lintl"

!     PHP_CHECK_LIBRARY(tcl, netg_errstr, [
!       PHP_ADD_LIBRARY(tcl,,SYBASE_CT_SHARED_LIBADD)
      ],[
!       PHP_ADD_LIBRARY(sybtcl,,SYBASE_CT_SHARED_LIBADD)
      ],[
        $SYBASE_CT_LIBS
      ])

!     PHP_CHECK_LIBRARY(insck, insck__getVdate,
[PHP_ADD_LIBRARY(insck,,
SYBASE_CT_SHARED_LIBADD)],[],[-L$SYBASE_CT_LIBDIR])
!     PHP_CHECK_LIBRARY(insck, bsd_tcp,        
[PHP_ADD_LIBRARY(insck,,
SYBASE_CT_SHARED_LIBADD)],[],[-L$SYBASE_CT_LIBDIR])
    fi
  fi

------------------------------------------------------------------------

[2006-01-11 12:05:06] dbaffaleuf at ixis-cib dot com

Hi, thx for your reply.

Though, it does not work either with the 5.1. CVS snapshot you
provided. I get exactly the same error message:

Warning: sybase_query(): Sybase:  Client message:  (): user api layer:
internal common library error: The bind of result set item 1 resulted in
truncation. (severity 116) in
/msmorzine/sgbd/contrib/src/php5.1-200601110930/MKTEST/bin/test_sybase_ct.php
on line 4
resource(4) of type (sybase-ct link)
bool(false)

Warning: sybase_fetch_row(): supplied argument is not a valid Sybase
result resource in
/msmorzine/sgbd/contrib/src/php5.1-200601110930/MKTEST/bin/test_sybase_ct.php
on line 8

------------------------------------------------------------------------

[2006-01-09 16:17:45] dbaffaleuf at ixis-cib dot com

Description:
------------
Acutally I have the problem both in PHP 4.4.1 and 4.4.2RC3


Always returns a correct resource id for the handler, but FALSE for the
query (see the following code)

The Sybase OpenClient warning code suggest an overflow in the
CS_DATAFMT.maxlength C struct. When returning, the datalength is sized
whether the type is CS_NUMERIC, CS_MONEY, etc... in the
php_sybase_fetch_result_set() fonction (src: php_sybase_ct.c). 

Works fine in DB-LIB.

The configure :

./configure     \
       
--prefix=/msmorzine/sgbd/contrib/src/php4-STABLE-200601091335/MKTEST   
\
       
--with-sybase-ct=/msmorzine/sgbd/MX_MT_MSMORZINE/ASE1253/OCS-12_5/devlib
\
        --enable-static=sybase-ct \
       
--with-config-file-path=/msmorzine/sgbd/contrib/src/php4-STABLE-200601091335/MKTEST
\
        --with-apxs2=/msmorzine/sgbd/contrib/bin/apxs   \
        --with-gd=/msmorzine/sgbd/contrib/ \
        --enable-sysvmsg \
        --enable-sysvsem \
        --enable-sysvshm



Reproduce code:
---------------
The following code:

$STR    = "select name from syslogins";
$DBH    = @sybase_connect("MX_MT_MSMORZINE","sa", "mypassword");
$QUERY  = sybase_query($STR,$DBH);
var_dump($DBH);
var_dump($QUERY);

while($row = sybase_fetch_row($QUERY)) {
    while(list($k, $v) = each($row)) {
        echo "\$row[$k] => $v\n";
    }
}


Expected result:
----------------
int(4)
int(5)
$row[0] => probe
$row[0] => sa


Actual result:
--------------
"Warning: sybase_query(): Sybase:  Client message:  (): user api layer:
internal common library error: The bind of result set item 1 resulted in
truncation. (severity 116) in
/msmorzine/sgbd/contrib/src/php4-STABLE-200601091335/MKTEST/bin/test_sybase_ct.php
on line 5
resource(4) of type (sybase-ct link)
bool(false)".



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=35945&edit=1

Reply via email to