On Fri Nov 5 12:57 AM, Stanley Sufficool wrote:
> >
> > And why is PHP client library using latin1 for data that just isn't 
> > latin1?  That's just asking for problems...
> 
> Theoretically I could ask for UTF8, but then I don't want to have to 
> run utf8_decode/utf8_encode on all query strings, returned data, etc 
> when the other drivers do not return unicode to PHP.
> 

Have a look at:
https://open-mv.googlecode.com/svn/trunk/classes/database/drivers/

I've solved most of these problems though not with PDO* drivers.

I think you'll get the consistency you need for "2 interchangeable and have
PHP/PDO applications run the same on Win32 and Linux" only minus the
PDO/PDO_DBLIB part.

In my opinion, PDO already does too much "abstraction magic", it would be
great if PDO2? could expose somehow:

static inline void fetch_value()

so that in userland you could deal with custom data types and override how
the data type bindings happen.

That would be some much needed flexibility to actually create a "database
abstraction" layer vs the pdo "data-access" layer.

> >
> > My only answer to that is to change your code to not ask for 'latin1'
> > in the first place, when the data isn't latin1.  Change the PHP
> client
> > charset to what it ought to be, and get the data you wanted, not 
> > some lossy down-sampled useless conversion of the data you wanted.
> >
> > I cannot comment on SQL Server behaviour with respect to the 
> > "servers code page" [sic], whatever that is, except to say that 
> > MySQL lets you define your charset on a table by table basis, and, I 
> > think, in
> recent
> > versions, even on a field by field basis. OpenSource ftw, perhaps? 
> > :-
> )
> 
> MSSQL allows per table and per column code pages in recent versions.
> As far as OpenSource DBMS', I support what my clients run, not what I 
> want them to run. If I had my choice, I would be running PostgreSQL.
> 

Per column code pages / collation is actually part of SQL92 (postgresql
doesn't support it, mysql, mssql,.. does)

In windows, the SQL native driver will properly convert everything to UTF-8.
In unix, FreeTDS should do the conversion correctly, have you run into
problems? Is this related to the PDO driver?




--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to