#39271 [Bgs]: oci_bind_array_by_name produces incorrect data

From: Date: Fri, 27 Oct 2006 21:25:59 +0000
Subject: #39271 [Bgs]: oci_bind_array_by_name produces incorrect data
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-104087@lists.php.net to get a copy of this message
ID: 39271 User updated by: quelch at udel dot edu Reported By: quelch at udel dot edu Status: Bogus Bug Type: OCI8 related Operating System: Redhat EL 3 PHP Version: 5.1.6 New Comment: However, if you have a column defined, say, as number (4,2) and place decimal values in it, you can't then get this data out using the "SQLT_INT" constant, as it truncates. I've updated my test case to do that at the link below. In this case, using SQLT_NUM gives me: Array ( [0] => 2688449 [1] => 2032833 [2] => 1377217 [3] => 721601 [4] => 128 ) Where I should get Array ( [0] => 4.4 [1] => 3.3 [2] => 2.2 [3] => 1.1 [4] => 0 ) Using the SQLT_INT constant gets me: Array ( [0] => 4 [1] => 3 [2] => 2 [3] => 1 [4] => 0 ) Which is not right either. Previous Comments: ------------------------------------------------------------------------ [2006-10-27 14:56:24] quelch at udel dot edu Thanks. Is the documentation going to be updated to reflect this workaround? ------------------------------------------------------------------------ [2006-10-27 08:37:35] tony2001@php.net Change SQLT_NUM to SQLT_INT and it works fine. There is no difference for OCI8 between those two bind types (they are handled by the same function in the very same way), so there must be some difference in OCI library itself. ------------------------------------------------------------------------ [2006-10-26 21:40:18] quelch at udel dot edu I get the same error with the php5.2-200610262030 snapshot as I did with the php5.2-200610261830 snapshot and 5.1.6. Thanks. ------------------------------------------------------------------------ [2006-10-26 20:50:55] tony2001@php.net Please try using this CVS snapshot: http://snaps.php.net/php5.2-latest.tar.gz For Windows: http://snaps.php.net/win32/php5.2-win32-latest.zip ------------------------------------------------------------------------ [2006-10-26 20:46:27] quelch at udel dot edu Description: ------------ Utilizing the oci_bind_array_by_name function in Oracle 10.2.0.1 results in incorrect data being returned for NUMBER array data. This error also occurs with the php5.2-200610261830 snapshot. Configure line: ./configure -with-oci8 --with-gd --enable-gd-imgstrttf --enable-gd-native-ttf --with-ttf --with-freetype-dir --with-apxs=/www/bin/apxs --with-png --with-zlib --with-jpeg --enable-xmlwriter --without-pear My database is set up with native code compile option for PL/SQL in case that makes a difference. Reproduce code: --------------- The code used can be found here: http://www-dev.quelch.org/ws/test.html Expected result: ---------------- Array ( [0] => 4 [1] => 3 [2] => 2 [3] => 1 [4] => 0 ) Actual result: -------------- Array ( [0] => 1473 [1] => 1217 [2] => 961 [3] => 705 [4] => 128 ) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=39271&edit=1

« previous php.bugs (#104087) next »