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] sniper@php.net
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