ID:               28908
 Updated by:       [EMAIL PROTECTED]
 Reported By:      skissane at iips dot mq dot edu dot au
-Status:           Assigned
+Status:           Bogus
 Bug Type:         MSSQL related
 Operating System: Linux
 PHP Version:      4.3.7
 Assigned To:      fmk
 New Comment:

Unable to reproduce and no feedback relevant to the os in use.
the 'Automatic ANSI to OEM convertion' option only applies to win32
clients and depends on how PHP is called.


Previous Comments:
------------------------------------------------------------------------

[2004-08-20 18:28:11] kimmo at kei-kun dot net

After a while of Googling I found the following fix:

Start the "Microsoft SQL Server/Client Network Utility" and go to the
tab "DB-Library Option". Uncheck the "Automatic ANSI to OEM
convertion".

Perhaps this information could be added to the php docs in the chapter
regarding MSSQL, since I think many people using MSSQL+PHP and not
speaking English as their first language could benefit from this
information.

------------------------------------------------------------------------

[2004-08-20 17:56:05] kimmo at kei-kun dot net

I have the same problem.

I've been testing some things with MySQL and MSSQL to see how they
behave in accordance to this issue.

I'm using a Swedish test string with special chars in it to see how the
db reacts (I'm from Sweden): 'Detta är en test av special bokstäver.
Även stora. ÅÄÖåäöÜüÉé.'

Testing with MySQL:
==================

Inserting the string with the commandline MySQL client:
------------------------------------------------------

Selecting the text from the client results in:
'Detta är en test av special bokstäver. Även stora. ÅÄÖåäöÜüÉé.'

Selecting the text from Php results in:
'Detta „r en test av special bokst„ver. Žven stora. Ž™†„”š‚.'


The reverse - inserting the string from Php:
-------------------------------------------
Selecting the text from Php results in:
'Detta är en test av special bokstäver. Även stora. ÅÄÖåäöÜüÉé.'

Selecting the text from the MySQL client results in:
'Detta õr en test av special bokstõver. -ven stora. +-ĶÕõ÷_³+Ś.'

---

These test was done on a machine running Windows, with Php and MySQL.

The same test on a machine running Linux didn't have ANY ISSUE OF
CHARATER CONVERTION AT ALL.

I ran all these tests with MSSQL too (on Windows only), and got similar
results as MySQL on Windows.
Original string: 'Detta är en test av special bokstäver. Även stora.
ÅÄÖåäöÜüÉé.'
Returned string: 'Detta är en test av special bokstäver. -ven stora.
+-Öåäö_ü+é.'

The problem seems to be that while MySQL handles all these special
characters convertions without damaging the strings - MSSQL don't.
Probably because it doesn't store some of the chars that the
non-standard-ascii chars get converted into properly. Note that not all
special chars are corrupted, only some of them.

It seems that Php is internally using ISO-8859-1 while Windows and the
database applications on Windows are using the ANSI encoding.

I don't know if there is any easy solution, so for the moment I am
forced to create a workaround by encoding all the text strings into
htmlenteties. The problem with this solution is that I have to disable
the search function on the site that I am setting up :(.

If anyone knows a better solution to this problem - feel free to email
me.

------------------------------------------------------------------------

[2004-08-03 19:07:56] webmaster at path dot org

PHP v 4.3.4:
I am having the same issue:

'./configure' '--with-apxs2=/usr/local/apache2/bin/apxs' '--with-mysql'
'--with-mssql=/usr/local' 

Freetds v 0.61.2
using protocol 7.0

Connecting to MS SQL Server 2000 (on a separate box, of course)

Ran the same test as above:

$r = mssql_connect("<servername>","<username>","<password>");
mssql_query("SELECT '" . chr(183) . "'",$r);

Get the following error:

Warning: mssql_query(): message: Unclosed quotation mark before the
character string '??'. (severity 15) in
/usr/local/apache2/htdocs/apps/consucap/test.php on line 13

Warning: mssql_query(): message: Line 1: Incorrect syntax near '??'.
(severity 15) in /usr/local/apache2/htdocs/apps/consucap/test.php on
line 13

Warning: mssql_query(): Query failed in
/usr/local/apache2/htdocs/apps/consucap/test.php on line 13

------------------------------------------------------------------------

[2004-06-29 21:04:02] [EMAIL PROTECTED]

I have testet your script with PHP4 and PHP5 (latest CVS) with the
latest cvs version of FreeTDS and I'm onable to reproduce the error.

Could you try to use the CVS version of PHP ?

------------------------------------------------------------------------

[2004-06-24 08:50:10] skissane at iips dot mq dot edu dot au

Also, I tested this, it works fine on 4.3.6. So this is a regression in
4.3.7.

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/28908

-- 
Edit this bug report at http://bugs.php.net/?id=28908&edit=1

Reply via email to