Edit report at http://bugs.php.net/bug.php?id=42493&edit=1
ID: 42493
User updated by: dave dot lane at gmx dot net
Reported by: dave dot lane at gmx dot net
Summary: odbc_pconnect: persistent connections with different
locales
Status: Bogus
Type: Bug
Package: ODBC related
Operating System: Linux
PHP Version: 5.2.4
New Comment:
Excuse me? No I don't find it funny. The fact is the reply took 3 years.
If you don't want to fix the problem or even understand it then fine
don't. It is still a Unified ODBC problem though. If the connect routine
takes notice of the locale when first connecting and not by any
subsequent connections that is a bug. End of story. A fix would be to
set the current locale on the existing connection or to keep track of
the locales corresponding to the open connections in the pool and open a
new connection when the current locale doesn't fit any in the pool. We
had to stop using pconnect and implemenent our own pool doing exactly
this.
Previous Comments:
------------------------------------------------------------------------
[2010-05-20 14:08:23] [email protected]
thanks for wasting our time, by the way. (You probably find such
comments funny, eh?)
The connection is just opened once.
------------------------------------------------------------------------
[2010-05-20 13:52:20] dave dot lane at gmx dot net
The bug is about odbc_pconnect i.e. take notice of the "p". As far as I
know the persistence of the connection is handled by php. The problem is
the following:
setlocale(LC_ALL, de_DE);
odbc_pconnect(...)
SQL: select current_timestamp from ... result: date in german format
setlocale(LC_ALL, en_EN);
odbc_pconnect(...)
SQL: select current_timestamp from ... result: date still in german
format
So obviously odbc_pconnect is taking notice of the locale when
connecting, but not when using persistence connections. Thanks for the
speedy reply to the problem by the way (nearly three years...)
------------------------------------------------------------------------
[2010-05-20 12:37:40] [email protected]
Unforutnately this cannot be influenced by PHP, you need to take care of
your locale when useing ODBC.
------------------------------------------------------------------------
[2007-08-31 12:34:09] dave dot lane at gmx dot net
Description:
------------
We have an environment where we both use odbc_pconnect and different
locales. DB2 recognises the locale and returns data formatted based on
this locale. That means when we do a setlocale(LC_ALL, de_DE); before we
connect we get float formatted so: 1,23541200000000E+004 and when we do
a setlocale(LC_ALL, en_GB); we get float formatted so
1.23541200000000E+004. This works fine when we use odbc_connect. The
problem is when we use odbc_pconnect connections are recycled without
taking the locale into account. Sometimes we get english when we have
set german and vice versa.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=42493&edit=1