ID: 27156 Comment by: max at pict dot lviv dot ua Reported By: sanjok at pict dot lviv dot ua Status: No Feedback Bug Type: OCI8 related Operating System: Linux SuSE 7.3&8.1 PHP Version: 4.3.4 Assigned To: tony2001 New Comment:
We have this problem on multiple configurations, everywhere situation is the same. Case1: DB Server Compaq Tru64Unix + Oracle 10.1.0.3.0 Client machines: A. SuSE 7.3 + Oracle Client 9.0.1 B. SLES 9 + Oracle Instant Client 10 Case2: DB Server SuSE 8.1 + Oracle 9.0.1 Oracle Client 9.0.1 running on the same machine. We have tried PHP 4.3.10 and 4.3.11, and this doesn't change the situation, problem persists. In SQLPlus I see data correctly saved from a web application, but when using OCIFetchInto in PHP script I receive FALSE instead of column value when column contains more than one umlaut character. Some details: NLS_LANG = GERMAN_AUSTRIA.UTF8; Database encoding is WE8DEC. Previous Comments: ------------------------------------------------------------------------ [2005-04-02 01:00:04] php-bugs at lists dot php dot net No feedback was provided for this bug for over a week, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open". ------------------------------------------------------------------------ [2005-03-25 01:42:42] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php4-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php4-win32-STABLE-latest.zip ------------------------------------------------------------------------ [2004-02-11 04:13:23] sanjok at pict dot lviv dot ua P.S.: Feedback was sent on Thu, 5 Feb 2004 15:25:01 (+0200) to mr. Anatoly Dovgal, but there was no response from him. ------------------------------------------------------------------------ [2004-02-11 04:06:06] sanjok at pict dot lviv dot ua <?php /* Oracle 9.0.1i database internal encoding WE8DEC database client encoding specified by NLS_LANG parameter is GERMAN_AUSTRIA.UTF8, so Oracle automatically converts characters to client encoding. CREATE TABLE TEST ( NAME CHAR(10) ); insert into test values ('ü'); insert into test values ('üü'); NOTE: this error doesn't occur when we use column type VARCHAR2 insted of CHAR */ ociinternaldebug(true); $connection = OCILogon(DB_USER, DB_PASS, DB_NAME); $query = "SELECT * FROM TEST"; $statement = OCIParse ($connection, $query); OCIExecute($statement); while (OCIFetchInto ($statement, $row, OCI_ASSOC+OCI_RETURN_NULLS)) { var_dump($row); } ?> result of ociinternaldebug. OCIDebug: oci_do_connect: id=3 OCIDebug: oci_parse "SELECT * FROM TEST" id=4 conn=3 array(1) { ["NAME"]=> string(11) "u " } OCIDebug: _oci_make_zval: NAME,retlen = 11,retlen4 = 0,storage_size4 = 11,indicator 10, retcode = 1406 array(1) { ["NAME"]=> bool(false) } OCIDebug: START php_rshutdown_oci OCIDebug: END php_rshutdown_oci OCIDebug: START _oci_stmt_list_dtor: id=4 last_query="SELECT * FROM TEST" OCIDebug: START _oci_column_hash_dtor: NAME OCIDebug: END _oci_column_hash_dtor: NAME OCIDebug: START _oci_conn_list_dtor: id=3 OCIDebug: nothing to do.. OCIDebug: END _oci_conn_list_dtor: id=3 OCIDebug: END _oci_stmt_list_dtor: id=4 ------------------------------------------------------------------------ [2004-02-05 05:31:08] sanjok at pict dot lviv dot ua Description: ------------ OCIFetchInto returns false as column value if table column contains more than one umlaut character while combination of OCIFetch and OCIResult functions returns correct result. Environment: OS: Linux SuSE 7.3/8.1; DB: Oracle 8.1.7/9.0.1i; PHP: 4.3.4 release Oracle NLS_LANG is set to GERMAN_AUSTRIA.UTF8 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=27156&edit=1