Error 1054 bei stored procedures
Error 1054 bei stored procedures
am 03.01.2006 21:18:13 von slize
Hilfe, ich komme leider gar nicht mehr weiter, vielleicht kann mir
jemand helfen...
Ich bin dabei die stored procedures in 5.0 einzurichten und verwende
dabei den MySQL Query Browser. Alles funktioniert wunderbar, wenn ich
die Prozedur über den QueryBrowser aufrufe.
Wenn ich aber dann über ein .php-Script oder direkt über Server
(CommandLine) aufrufe, meldet er einen Fehler (`unknown column` 1054).
Ich verwende (...) Umlaute und `ß`... grrrrrrrrr.
Seltsam: Der Aufruf über den Browser geht 100%...
Weiß jemand, was da passiert?
Greetz
Re: Error 1054 bei stored procedures
am 03.01.2006 21:33:55 von Sven Paulus
slize wrote:
> Wenn ich aber dann über ein .php-Script oder direkt über Server
> (CommandLine) aufrufe, meldet er einen Fehler (`unknown column` 1054).
> Ich verwende (...) Umlaute und `ß`... grrrrrrrrr.
In den Spaltennamen?
Re: Error 1054 bei stored procedures
am 04.01.2006 00:07:50 von slize
Genau. Und zwar bei einem INSERT INTO SELECT.
Wenn ich die die Spalten mit Umlauten rausnehme, läuft die Prozedur
auch über direkt den Server. Ansonsten nur über den QueryBrowser..
Sven Paulus schrieb:
> slize wrote:
> > Wenn ich aber dann über ein .php-Script oder direkt über Server
> > (CommandLine) aufrufe, meldet er einen Fehler (`unknown column` 1054).
> > Ich verwende (...) Umlaute und `ß`... grrrrrrrrr.
>=20
> In den Spaltennamen?
Re: Error 1054 bei stored procedures
am 04.01.2006 00:26:49 von Sven Paulus
slize wrote:
> Genau. Und zwar bei einem INSERT INTO SELECT.
> Wenn ich die die Spalten mit Umlauten rausnehme, läuft die Prozedur
> auch über direkt den Server. Ansonsten nur über den QueryBrowser..
Dann eine bloede Frage: Warum machst Du das? Was spricht gegen
Spaltennamen ohne Umlaute? Dann hast Du schon kein
Latin-1-vs.-UTF-8-Problem.
Re: Error 1054 bei stored procedures
am 04.01.2006 00:29:12 von slize
weiß ich, aber der Datenbestand ist schon etwas größer (ca. 50 MB)
es laufen zwei Anwendungen drauf...
Re: Error 1054 bei stored procedures
am 04.01.2006 00:33:24 von slize
Ich hatte bis jetzt auch noch nie Probleme (bin aber auch ohne die
stored proc. ausgekommen ... :-) ). Was ich bloß so seltsam finde,
ist, dass der QueryBrowser die Prozedur abarbeitet, aber eben der
Server bzw. die PHP-Anwendung nicht.
Meldet sich der QueryBrowser anders an??
Hat er magische Kräfte??
Re: Error 1054 bei stored procedures
am 04.01.2006 01:03:47 von Dirk Brosowski
slize schrieb:
> weiß ich, aber der Datenbestand ist schon etwas größer (ca. 50 MB)
> es laufen zwei Anwendungen drauf...
>
Wieso ist dein Datenbestand ein Problem? Du richtest doch gerade erst
die SP ein, und wie du die nennst ist doch wohl vollkommen unabhängig
von deinem Datenbestand. Ausserdem sind 50MB ein sehr kleiner
Datenbestand ;) Wenn überhaupt kommt es auf die Komplexität der
Anwendung an, und dann kann man auch 100Kb bereits sehr komplex verteilen.
Im übrigen sollte man eigentlich niemals Prozeduren / Funktionen oder
ähnliches mit Sonderzeichen im Namen benennen. Programmiersprachen
lassen das i.allg. auch erst gar nicht zu.
Der Unterschied zwischen der Serveranwendung (PHP) und dem Query-Browser
ist auch trivial. Die Serveranwendung bekommt deine Query auf einem
anderen Weg, hier werden Konvertierungen durchgeführt und die Anwendung
sieht in deinem Fall nicht das Original, welches du eingegeben hast.
Liegt i.allg. daran, dass im Apachewebserver etwas falsch eingestellt ist.
Diese Zusammenhänge sollte man übrigens gut kennen, wenn man mit php
arbeitet.
Grüße
Dirk
Re: Error 1054 bei stored procedures
am 04.01.2006 09:06:26 von Hartmut Holzgraefe
slize wrote:
> Ich hatte bis jetzt auch noch nie Probleme (bin aber auch ohne die
> stored proc. ausgekommen ... :-) ). Was ich bloß so seltsam finde,
> ist, dass der QueryBrowser die Prozedur abarbeitet, aber eben der
> Server bzw. die PHP-Anwendung nicht.
> Meldet sich der QueryBrowser anders an??
> Hat er magische Kräfte??
unterschiedliche client character set Einstellungen:
http://dev.mysql.com/doc/refman/5.0/en/charset-connection.ht ml
Da du mit nicht-ASCII Zeichen arbeitest mußt du darauf achten das
du überall die gleiche Codierung benutzt.
Dein Problem sieht (wie bereits erwähnt) stark nach einem
UTF8 vs. ISO/Latin1 Konflikt aus, d.h. entweder übergibst du Umlaute
als Latin1 obwohl laut Verbindungseinstellungen UTF8 erwartet wird
oder umgekehrt.
Versuch mal ein
SET NAMES 'latin1'
oder
SET NAMES 'utf8'
am Anfang deines PHP-Scriptes bzw. deiner Command Line Session
--=20
Hartmut Holzgraefe, Senior Support Engineer .
MySQL AB, www.mysql.com
http://www.mysql.com/support/
Re: Error 1054 bei stored procedures
am 04.01.2006 09:50:02 von slize
Danke!!!!!!!!!!!!!
So funktioniert=B4s endlich.
SET NAMES `utf8` in der CommandLine oder in PHP vor dem Prozeduraufruf
klappt.
....
Danke