Über Konsole PHP-Script auf MS-SQL zugreifen lassen
Über Konsole PHP-Script auf MS-SQL zugreifen lassen
am 12.10.2006 14:31:15 von Stefan Schulz
Hallo,
ich habe mir ein PHP-Script geschrieben, welches sich zu einer
MS-SQL-Datenbank connected und dort Daten ausliest.
Der Aufruf klappt auch wunderbar über den Webbrowser und der Konsole
unter Windows.
Jetzt gibt es in der MS-SQL-DB auch Felder mit Umlauten. Ein
Tabellenfeld heisst z.B. "Möglichkeit".
Mache ich darauf dann einen Select "SELECT Möglichkeit FROM...." klappt
das zwar noch über den Webbrowser, auf der Windows-Konsole bekomme ich
aber eine Fehlermeldung.
Er sagt mir, dass die SQL-Syntax falsch ist. Es wird das "ö" als
Sonderzeichen angezeigt und der Zugriff schlägt fehl.
Ich habe es mit der php.exe und der CLI-Variante unter PHP4 und PHP5
probiert.
Wie gesagt, das Script klappt beim Aufruf über den Webbrowser, in der
Windows-Kommandozeile kommt ein Error.
Da das Script evtl. 2 Stunden läuft, will ich es auch unbedingt über die
Windows-Konsole aufrufen. Der Aufruf über die URL hilft mir leider nicht
weiter.
Das gleiche Beispiel mit einer Verbindung zu einer mySQL-Datenbank
klappt. Nur der Zugriff auf die MS-SQL-DB funktioniert nicht.
Hat jemand einen Tipp für mich?
Danke
Stefan
Re: Über Konsole PHP-Script auf MS-SQL zugreifen lassen
am 12.10.2006 16:40:00 von Michael Jostmeyer
Stefan Schulz schrieb:
> Hat jemand einen Tipp für mich?
Ja, benenne die Felder in der DB mit Namen ohne Umlaute.
Gruss Josi
Re: Über Konsole PHP-Script auf MS-SQL zugreifen lassen
am 12.10.2006 17:19:18 von do.not.REMOVETHAT
Stefan Schulz schrieb:
> Jetzt gibt es in der MS-SQL-DB auch Felder mit Umlauten.
Hehe :-)
> Mache ich darauf dann einen Select "SELECT Möglichkeit FROM...." klappt
> das zwar noch über den Webbrowser, auf der Windows-Konsole bekomme ich
> aber eine Fehlermeldung.
Muttu richtigen Zeichensatz verwenden. Ist sich Windows, hat sich
verschiedene Zeichensätze für verschiedene Fensterfarben: weiße und
graue Fenster ein Zeichensatz, schwarze Fenster anderer Zeichensatz.
Konvertiere Dein Script vom Hellfensterzeichensatz auf den
Dunkelfensterzeichensatz und es wird funktionieren. Glaub ich.
Mein "Textpad" von Anno Duback hier hat z.B. einen Menüpunkt welcher
sich da nennt "In DOS-Zeichensatz konvertieren".
Grüße, Matthias
--
http://www.trullala.de
--
Der Trend geht ganz eindeutig zur Zweitsignatur.
Re: Über Konsole PHP-Script auf MS-SQL zugreifen lassen
am 12.10.2006 20:55:21 von Stefan Schulz
Matthias P. Wuerfl schrieb:
> Muttu richtigen Zeichensatz verwenden. Ist sich Windows, hat sich
> verschiedene Zeichensätze für verschiedene Fensterfarben: weiße und
> graue Fenster ein Zeichensatz, schwarze Fenster anderer Zeichensatz.
> Konvertiere Dein Script vom Hellfensterzeichensatz auf den
> Dunkelfensterzeichensatz und es wird funktionieren. Glaub ich.
>
> Mein "Textpad" von Anno Duback hier hat z.B. einen Menüpunkt welcher
> sich da nennt "In DOS-Zeichensatz konvertieren".
Schon einmal vielen Dank für den Tipp, aber wie gebe ich den anderen
Zeichensatz in der PHP-Datei dann an?
Oder muss ich dann direkt "SELECT M%glichkeiten FROM..." schreiben?
Danke
Stefan
Re: Über Konsole PHP-Script auf MS-SQL zugreifen lassen
am 12.10.2006 21:31:02 von Claus Reibenstein
Matthias P. Wuerfl schrieb:
> Muttu richtigen Zeichensatz verwenden. Ist sich Windows, hat sich
> verschiedene Zeichensätze für verschiedene Fensterfarben: weiße und
> graue Fenster ein Zeichensatz, schwarze Fenster anderer Zeichensatz.
Und was ist mit den rosa, himmelblauen, pastellgrünen und gelben
Fenstern? Sorry, aber so einen Schwachsinn habe ich selten gelesen.
Gruß. Claus
Re: Über Konsole PHP-Script auf MS-SQL zugreifen lassen
am 13.10.2006 10:45:44 von do.not.REMOVETHAT
Stefan Schulz schrieb:
> Schon einmal vielen Dank für den Tipp, aber wie gebe ich den anderen
> Zeichensatz in der PHP-Datei dann an?
Den gibst Du nicht an, Du konvertierst den Text vom einen in einen
anderen Zeichensatz. Das sollte Dein Editor beherrschen.
> Oder muss ich dann direkt "SELECT M%glichkeiten FROM..." schreiben?
Nein. Es gibt sicher eine "bessere" Lösung. Leider kenne ich sie nicht
auswendig, da ich bisher noch nie auf die Idee gekommen bin,
Spaltennamen mit Umlauten zu benutzen :-)
Wenn Dein Editor Dir sowas nicht spontan anbietet, dann durchforste doch
mal die PHP-Online-Doku zu "charset" und "recode".
Grüße, Matthias
--
http://www.trullala.de
--
Der Trend geht ganz eindeutig zur Zweitsignatur.
Re: Über Konsole PHP-Script auf MS-SQL zugreifen lassen
am 13.10.2006 10:47:40 von do.not.REMOVETHAT
Claus Reibenstein schrieb:
>> Ist sich Windows, hat sich
>> verschiedene Zeichensätze für verschiedene Fensterfarben: weiße und
>> graue Fenster ein Zeichensatz, schwarze Fenster anderer Zeichensatz.
>
> Und was ist mit den rosa, himmelblauen, pastellgrünen und gelben
> Fenstern?
Weiß ich nicht. Ich kenne nur die grauen und die weißen und die schwarzen.
> Sorry, aber so einen Schwachsinn habe ich selten gelesen.
Was veranlasst Dich zu der Vermutung das sei "Schwachsinn"? Wie kannst
Du das untermauern? Und vor allen Dingen: Wie erklärst Du anders Stefans
Problem?
Mit der Einführung der grafischen Benutzeroberfläche hat Microsoft
seinem Betriebssystem einen anderen Zeichensatz spendiert. Vorher hatte
es IFAIK CP-437 bzw. später CP-850. Die grafische Benutzeroberfläche
(graue und weiße Fenster) nutzt den Zeichensatz Windows-1252. Weil MS
wollte, dass die "alten" Programme weiterhin funktionieren hat die Shell
("MS-DOS Eingabeaufforderung", das "schwarze Fenster") auch unter
Windows XP und Windows Server 2003 noch den gleichen Zeichensatz wie das
DOS früher.
Dass sich diese beiden Zeichensätze im Bereich der deutschen Umlaute
unterscheiden lässt sich einfach nachvollziehen: Mach eine textdatei.txt
und schreibe in einem weißen Notepad-Fenster das Wort "Möglichkeit"
rein. Starte dann das schwarze "Eingabeaufforderung" und tippe da mal
"type textdatei.txt". Du siehst, dass die Umlaute durch andere Zeichen
ersetzt wurden?
Grüße, Matthias
--
http://www.trullala.de
--
Der Trend geht ganz eindeutig zur Zweitsignatur.
Re: Über Konsole PHP-Script auf MS-SQL zugreifen lassen
am 13.10.2006 11:40:21 von Claus Reibenstein
Matthias P. Wuerfl schrieb:
> Claus Reibenstein schrieb:
>
>>> Ist sich Windows, hat sich
>>> verschiedene Zeichensätze für verschiedene Fensterfarben: weiße und
>>> graue Fenster ein Zeichensatz, schwarze Fenster anderer Zeichensatz.
>>
>> Und was ist mit den rosa, himmelblauen, pastellgrünen und gelben
>> Fenstern?
>
> Weiß ich nicht. Ich kenne nur die grauen und die weißen und die schwarzen.
Aha. Welche exotische Windows-Version hast Du? Zumindest die kleinen
Quickinfo-Fenster sind standardmäßig gelb, und die verschiedenen
Anwendungsfenster haben teilweise noch ganz andere Farben.
>> Sorry, aber so einen Schwachsinn habe ich selten gelesen.
>
> Was veranlasst Dich zu der Vermutung das sei "Schwachsinn"? Wie kannst
> Du das untermauern?
Ich weiß nicht, wie Du darauf kommst, dass zwischen Fensterfarbe und
Zeichensatz überhaupt ein Zusammenhang bestehen _könnte_. Kannst Du das
mal begründen? Schließlich bist Du derjenige, der diese Behauptung
aufgestellt hat.
> Und vor allen Dingen: Wie erklärst Du anders Stefans
> Problem?
Darum geht es im Augenblick nicht.
Gruß. Claus
Re: Über Konsole PHP-Script auf MS-SQL zugreifen lassen
am 13.10.2006 17:06:13 von do.not.REMOVETHAT
Claus Reibenstein schrieb:
>> Was veranlasst Dich zu der Vermutung das sei "Schwachsinn"?
>
> Ich weiß nicht, wie Du darauf kommst
Nun gut, dann kann ich Dir auch nicht helfen :-)
>> Und vor allen Dingen: Wie erklärst Du anders Stefans
>> Problem?
>
> Darum geht es im Augenblick nicht.
Mir schon. Es soll das Zeug mal nach CP850 recoden und probieren ob's
dann geht.
Grüße, Matthias
--
http://www.trullala.de
--
Der Trend geht ganz eindeutig zur Zweitsignatur.
Re: Über Konsole PHP-Script auf MS-SQL zugreifen lassen
am 14.10.2006 01:13:09 von Carsten Wiedmann
Matthias P. Wuerfl schrieb:
> Weil MS wollte, dass die "alten" Programme weiterhin funktionieren hat die
> Shell ("MS-DOS Eingabeaufforderung", das "schwarze Fenster") auch unter
> Windows XP und Windows Server 2003 noch den gleichen Zeichensatz wie das
> DOS früher.
Auch wenn das dem OP nicht hilft (bzw. ich bei seinem Problem nicht helfen
kann), kann man das so pauschal auch nicht sagen:
| C:\>ver
|
| Microsoft Windows XP [Version 5.1.2600]
|
| C:\>chcp
| Aktive Codepage: 1252.
|
| C:\>
Gruß
Carsten
Re: Über Konsole PHP-Script auf MS-SQL zugreifen lassen
am 16.10.2006 08:38:15 von Stefan Schulz
Matthias P. Wuerfl schrieb:
> Mir schon. Es soll das Zeug mal nach CP850 recoden und probieren ob's
> dann geht.
Ja Danke, es hat geklappt. Hatte es zuerst mit 1252 probiert. Aber mit
CP850 geht es.
Vielen Dank!
Stefan