Jump to content

MS SQL Server 2005 adodb php


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

Hallo zusammen!

Auf einem Windows2003 Service Pack1 Server läuft der MSSQL Server 2005!

 

Aus PHP5 heraus rufe ich mit ADODB die Datenbank folgendermaßen auf:

 

function adoconnect($db_user, $db_pass, $db_dsn, $databasetype='odbc_mssql'){
$db_h =& ADONewConnection($databasetype);
$db_h->debug = FALSE;
//$dsn = "Driver={SQL Server};Server=winonmac\sqlexpress;Database=TestDB";

$db_h->Connect($db_dsn, $db_user, $db_pass);
//$db_h->Connect($db_server, $db_user, $db_pass, $db_dbname);

return $db_h;
}

 

Problem:In der Datenbank stehen kyrillische Zeichen, die nach der Abfrage nur als Fragezeichen dargestellt werden.

Ich habe auch bereits die Funktionen htmlspecialchar(), htmlentities() und mb_convert_variables() auf das Datenbankergebnis angewandt - ohne Erfolg.

 

Wenn ich mit PHP kyrillischen Text aus einer Textdatei lese, wird er richtig dargestellt, daraus habe ich geschlossen, dass an meinem Rechner und an der Webseite die ganzen charset-Einstellungen richtig sind...??

 

Wenn man sich auf eine Oracle Datenbank connected gibts ein

$conn->charSet = 'we8iso8859p1'; (Quelle:docs-adodb.htm)

aber leider für MSSQL nicht???

 

Bin für jede hilfe dankbar, da ich schon seit Tagen auf der Suche bin:-/

Falls noch wichtige Angaben fehlen sollten, bitte schreiben

Danke, Gruß, damdp

Geschrieben

Sorry für die dumme Frage, aber wie finde ich das heraus?

Mit "rechte Maustaste"->Eigenschaften auf Datenbank habe ich unter Wartung ->Sortierreihenfolge "Latin1_General_CI_AS" stehen, aber das sollte ja mit der Datenspeicherung nichts zu tun haben!??

Geschrieben

Hab ich schon... Aber so wie es scheint muss die Information irgendwo ZWISCHEN Datenbank und PHP verlorengehen. Nochmal ein paar Informationen:

 

echo mb_detect_encoding("lующ"); //liefert ASCII

echo mb_detect_encoding("Ergebnisstring aus der Datenbank"); //liefert ASCII

 

echo iconv(string in_charset, string out_charset, "Ergebnisstring aus der Datenbank") //Keine Auswirkungen(nur Fragezeichen)(für in_charset und out_charset alle Kombinationen aus ASCII, UTF-8, UCS-2)

 

Auch mb_convert_variables(), htmlspecialchar() und htmlentities() haben in allen Kombinationen keine Auswirkung!

Daraus schließe ich, dass der String schon als Fragezeichen aus der Datenbank kommen muss! Da er aber in der Datenbank korrekt dargestellt ist, denke ich dass es am mssql-odbc oder ADO liegt...

 

Aber ersstmal danke für deine Mühen:-)

Gruß, Tom

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...