ISO-8859-1 Zeichensatz

ISO-8859-1 Zeichensatz

am 26.10.2006 14:14:45 von Nico Render

Hallo,
ich würde gerne meine SQL-Tabellen im ISO-8859-1 Zeichensatz erstelle. Ich
arbeite mit PHPMyAdmin. Ich habe gelesen, daß ich dafür die
header_http.inc.php ändern muß. Leider weiß ich nicht wie.
Die Datei sieht folgendermaßen aus:
/* $Id: header_http.inc.php,v 2.4 2005/11/24 08:15:00 nijel Exp $ */
// vim: expandtab sw=4 ts=4 sts=4:

if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS'])) {
die("GLOBALS overwrite attempt");
}

/**
* Sends http headers
*/
$GLOBALS['now'] = gmdate('D, d M Y H:i:s') . ' GMT';
header('Expires: ' . $GLOBALS['now']); // rfc2616 - Section 14.21
header('Last-Modified: ' . $GLOBALS['now']);
header('Cache-Control: no-store, no-cache, must-revalidate, pre-check=0,
post-check=0, max-age=0'); // HTTP/1.1
header('Pragma: no-cache'); // HTTP/1.0
if (!defined('IS_TRANSFORMATION_WRAPPER')) {
// Define the charset to be used
header('Content-Type: text/html; charset=' . $GLOBALS['charset']);
}
?>


Muss da dann header('Content-Type: text/html; charset=iso-8859-1); stehen??
Ich bin mir da nicht sicher.

Re: ISO-8859-1 Zeichensatz

am 26.10.2006 14:31:04 von dev-null-use-reply-adress

Nico Render schrieb:
> ich würde gerne meine SQL-Tabellen im ISO-8859-1 Zeichensatz erstelle. Ich
> arbeite mit PHPMyAdmin. Ich habe gelesen, daß ich dafür die
> header_http.inc.php ändern muß. Leider weiß ich nicht wie.

Unfug! Wer schreibt sowas?

> Die Datei sieht folgendermaßen aus:
> [..]
> header('Content-Type: text/html; charset=' . $GLOBALS['charset']);

Und was steht da? Eine Variable. Es ist also anzunehmen, das
sich das irgendwo konfigurieren lässt. Und sowas geht, wie alles
andere auch, natürlich in der config.inc.php.

Achja, eine umfangreiche "Dokumentation.html" bzw. ".txt" bringt
phpMyAdmin ja auch noch mit. Das steht auch was zu Zeichensätzen drin.


Gruß
JPM

Re: ISO-8859-1 Zeichensatz

am 26.10.2006 14:59:42 von Axel Schwenke

"Nico Render" wrote:

> ich würde gerne meine SQL-Tabellen im ISO-8859-1 Zeichensatz erstelle.

Dann mach das doch. Und, BTW, das Encoding ist eine Eigenschaft einer
Spalte, nicht einer Tabelle. In epischer Breite erläutert findest du
das z.B. hier:

http://blog.koehntopp.de/archives/1424-MySQL-Zeichensatz-Gru ndlagen.html

> Ich arbeite mit PHPMyAdmin.

Das ist schlecht (phpMyAdmin hat regelmäßig Bugs, die Anwender an
"kaputten Umlauten" verzweifeln lassen)

> Ich habe gelesen, daß ich dafür die
> header_http.inc.php ändern muß.

Und das ist Schwachsinn.

> Muss da dann header('Content-Type: text/html; charset=iso-8859-1); stehen??

Nein. Zumindest ist das nicht notwendig, um korrekte Umlaute
anzuzeigen. Das ist ja gerade das schöne an MySQL 4.1+, daß Zeichen
in der Datenbank und in der Applikation *nicht* gleich codiert sein
müssen. Die Applikation sagt MySQL einfach, wie sie Daten anliefert
bzw. empfangen möchte und MySQL konvertiert automagisch.

Aber wozu schreibe ich das, das hast du ja bei Kris schon gelesen.


XL

Re: ISO-8859-1 Zeichensatz

am 26.10.2006 16:39:35 von Heiko Sobecki

Wenn du die deutsche Version von phpMyAdmin installierst hast,
ist dies bereits voreingestellt.




"Axel Schwenke" schrieb im Newsbeitrag
news:ufbqhe.5s6.ln@xl.homelinux.org...
> "Nico Render" wrote:
>
> > ich würde gerne meine SQL-Tabellen im ISO-8859-1 Zeichensatz erstelle.
>
> Dann mach das doch. Und, BTW, das Encoding ist eine Eigenschaft einer
> Spalte, nicht einer Tabelle. In epischer Breite erläutert findest du
> das z.B. hier:
>
> http://blog.koehntopp.de/archives/1424-MySQL-Zeichensatz-Gru ndlagen.html
>
> > Ich arbeite mit PHPMyAdmin.
>
> Das ist schlecht (phpMyAdmin hat regelmäßig Bugs, die Anwender an
> "kaputten Umlauten" verzweifeln lassen)
>
> > Ich habe gelesen, daß ich dafür die
> > header_http.inc.php ändern muß.
>
> Und das ist Schwachsinn.
>
> > Muss da dann header('Content-Type: text/html; charset=iso-8859-1);
stehen??
>
> Nein. Zumindest ist das nicht notwendig, um korrekte Umlaute
> anzuzeigen. Das ist ja gerade das schöne an MySQL 4.1+, daß Zeichen
> in der Datenbank und in der Applikation *nicht* gleich codiert sein
> müssen. Die Applikation sagt MySQL einfach, wie sie Daten anliefert
> bzw. empfangen möchte und MySQL konvertiert automagisch.
>
> Aber wozu schreibe ich das, das hast du ja bei Kris schon gelesen.
>
>
> XL

phpMyAdmin (was: ISO-8859-1 Zeichensatz)

am 26.10.2006 18:38:32 von Claus Reibenstein

Axel Schwenke schrieb:

> "Nico Render" wrote:
>
>> Ich arbeite mit PHPMyAdmin.
>
> Das ist schlecht (phpMyAdmin hat regelmäßig Bugs, die Anwender an
> "kaputten Umlauten" verzweifeln lassen)

Was habt Ihr bloß alle gegen phpMyAdmin? Ich arbeite schon eine ganze
Weile damit und kann diese Anti-Propaganga nicht nachvollziehen. Fast
alles funktioniert so, wie es soll bzw. wie ich es haben will. Die paar
Bugs, die ich inzwischen gefunden habe, stören mich kaum.

Falsche Umlaute hatte ich übrigens auch schon mal. Allerdings konnte ich
recht schnell feststellen, dass das Problem nicht an phpMyAdmin, sondern
ausschließlich an mir lag. Nachdem ich meine Bugs beseitigt hatte, waren
auch die Umlaute alle in Ordnung.

Was also ist denn nun so schrecklich an phpMyAdmin, dass hier alle Nase
lang so heftig dagegen gewettert wird?

Gruß. Claus

Re: phpMyAdmin

am 26.10.2006 19:42:05 von dev-null-use-reply-adress

Claus Reibenstein schrieb:
> Axel Schwenke schrieb:
>> "Nico Render" wrote:
>>
>>> Ich arbeite mit PHPMyAdmin.
>>
>> Das ist schlecht (phpMyAdmin hat regelmäßig Bugs, die Anwender an
>> "kaputten Umlauten" verzweifeln lassen)
>
> Was habt Ihr bloß alle gegen phpMyAdmin? Ich arbeite schon eine ganze
> Weile damit und kann diese Anti-Propaganga nicht nachvollziehen. Fast
> alles funktioniert so, wie es soll bzw. wie ich es haben will.

Dem will ich mal zustimmen. Vor allem in der MySQL-Gruppe wird
das regelmäßig niedergemacht. Ich kann das auch nicht verstehen
und wüsste nicht, wie ich ohne phpMyAdmin auskommen sollte.
Dabei geht es mir hauptsächlich um die tägliche Arbeit mit
bestehenden Datenbanken. Ich muß häufig einfache bis komplizierteste
Abfragen durchführen, wo das Erlebnis dann als Ausdruck oder Excel-
Tabelle gewünscht ist. Ja, tippen muß ich die Abfrage in phpMyAdmin
genauso wie auf der Komandozeile bspw. Aber bekomme ich bei letzter
das Ergebnis übersichtlich und leicht weiterverarbeitbar präsentiert?

Oder etwas wie schnell mal einen Index auf eine Spalte setzen.
Was ist einfacher? ALTER table ... usw. tippen, oder einmal
klicken? Noch viel extremer ist der Unterschied im Arbeitsaufwand,
wenn ich schnell mal einen Datensatz löschen oder sogar bearbeiten
möchte.

Oder soll man sich allen ernstes für $Webapplikation ein Backend
schreiben, was jede nur denkbare Wartungs- oder Reportarbeit erledigen
kann? Das ist doch garnicht möglich.


Gruß
JPM

Re: phpMyAdmin (was: ISO-8859-1 Zeichensatz)

am 27.10.2006 14:58:24 von Axel Schwenke

Claus Reibenstein wrote:
> Axel Schwenke schrieb:
>> "Nico Render" wrote:
>>
>>> Ich arbeite mit PHPMyAdmin.
>>
>> Das ist schlecht (phpMyAdmin hat regelmäßig Bugs, die Anwender an
>> "kaputten Umlauten" verzweifeln lassen)
>
> Was habt Ihr bloß alle gegen phpMyAdmin? Ich arbeite schon eine ganze
> Weile damit und kann diese Anti-Propaganga nicht nachvollziehen.
....

> Was also ist denn nun so schrecklich an phpMyAdmin, dass hier alle Nase
> lang so heftig dagegen gewettert wird?

Vorweg: phpMyAdmin ist nicht schrecklich. Es ist auch nicht *besonders*
buggy oder generell schlecht. Es ist nur *schlechter* als andere Tools.
Zumindest für bestimmte Aufgaben.

Warum ist das so?

Das Hauptproblem an phpMyAdmin ist, daß es eine PHP-Webapplikation ist
und demzufolge diversen Einschränkungen unterliegt:

- Speicherverbrauch und Laufzeit von PHP-Skripts sind limitiert. Das
ist im ursprünglichen Kontext "Webapplikation" durchaus sinnvoll.
Nicht für phpMyAdmin. Zähle die eigentlich unnötigen Postings a'la
"Hilfe, ich bekomme beim Restore meines Backups einen Timeout!"

- phpMyAdmin baut für jede Abfrage eine neue Verbindung zur Datenbank
auf. Das invalidiert sämtliche sessionbasierten Datenbank-Objekte.
LAST_INSERT_ID(), User-Variablen, temporäre Tabellen - alles kaputt.
Somit eignet sich phpMyAdmin nicht für das Testen von SQL-Statements,
die man später in seinen PHP-Skripten verwenden will.

- phpMyAdmin verkompliziert das System und macht es intransparent.
Für die Fehlersuche ist es praktisch unbrauchbar:

* wenn ich ein SQL-Statement über phpMyAdmin absetze, weiß ich nicht,
wie das bei MySQL ankommt. Ich habe lange kein aktuelles phpMyAdmin
mehr angefaßt, aber in der Vergangenheit habe ich von kaputt-
repariertem Quoting über falsch ausgewiesene Umlaute oder schlicht
veränderte Queries (LIMIT angehängt) schon zu viel gesehen, als daß
ich noch irgendwelches Vertrauen hätte.

* außer dem zu testenden System - der Datenbank - teste ich mit
phpMyAdmin zusätzlich noch meinen Webserver, mein PHP, die PHP
mysql-Extension und die libmysqlclient, gegen die der ganze Zirkus
heute gerade gelinkt ist. Außerdem auch noch meinen Webbrowser.
Immer wenn irgendetwas seltsam aussieht, weiß ich nicht, welche
dieser Komponenten denn jetzt fehlerhaft oder einfach nur falsch
konfiguriert ist.


Mein Fazit:

phpMyAdmin eignet sich weder für die Fehlersuche noch für Aktionen, die
viel Daten bewegen oder tendenziell länger dauern (Backup/Restore).
Als Klick-mich Tool zum Ansehen und (eingeschränkt) auch Ändern einer
Datenbank ist es OK.


Welches Tool statt dessen?

Der mysql Kommandozeilenclient ist viel komfortabler, als mancher
Vertreter der "alles muß klickbar sein" Fraktion glauben möchte.
Man kann Ergebnisse in Files schreiben lassen (tee) oder SQL-Skripte
einlesen und ausführen (source). Es gibt History, Tab-Completion
und und und...

Backup und Restore macht man natürlich über mysqldump/mysql.


XL

Re: phpMyAdmin

am 27.10.2006 16:09:54 von Claus Reibenstein

Axel Schwenke schrieb:

> Claus Reibenstein wrote:
>
>> Was also ist denn nun so schrecklich an phpMyAdmin, dass hier alle Nase
>> lang so heftig dagegen gewettert wird?
>
> Vorweg: phpMyAdmin ist nicht schrecklich. Es ist auch nicht *besonders*
> buggy oder generell schlecht. Es ist nur *schlechter* als andere Tools.
> Zumindest für bestimmte Aufgaben.

Das mag sein. Allerdings möchte ich auch nicht für jede Aufgabe ein
eigenes Tool haben, sondern suche nach Möglichkeit ein Tool für alles.
Dass es so etwas nicht gibt, ist klar. phpMyAdmin kommt dem für meine
Bedürfnisse aber schon recht nahe. Zumindest die Administration meiner
Datenbank kann ich damit fast vollständig erledigen.

> Warum ist das so?
>
> [viele Argumente]

Danke für Deine ausführliche Erklärung. Das bringt schon mal ein wenig
Licht in die Angelegenheit.

> phpMyAdmin eignet sich weder für die Fehlersuche noch für Aktionen, die
> viel Daten bewegen oder tendenziell länger dauern (Backup/Restore).
> Als Klick-mich Tool zum Ansehen und (eingeschränkt) auch Ändern einer
> Datenbank ist es OK.

Ich habe meine Datenbank vollständig damit erstellt und pflege sie auch
damit.

> Der mysql Kommandozeilenclient ist viel komfortabler, als mancher
> Vertreter der "alles muß klickbar sein" Fraktion glauben möchte.

Wenn man die Syntax der Befehle kennt, sicher. Allerdings bin ich in SQL
noch nicht so fit, dass ich _alles_ per Kommandozeile erledigen könnte.
Außerdem ist ein vernünftig konzipiertes grafisches Frontend i.d.R.
übersichtlicher und einfacher zu bedienen als eine Kommandozeile.

> Backup und Restore macht man natürlich über mysqldump/mysql.

Das ist so ziemlich das einzige, wofür ich phpMyAdmin nicht benutze.
Dafür nehme ich genau diese beiden Tools oder gelegentlich
mysql-administrator, wenn ich einzelne Tabellen "mal eben" zwischen dem
Webserver und meiner lokalen Testinstallation austauschen möchte.

Mein Fazit: ich bleibe vorerst bei phpMyAdmin. Es reicht für meine
Bedürfnisse weitgehend aus. Lediglich Backup/Restore wird extern erledigt.

Gruß. Claus

Re: phpMyAdmin

am 08.11.2006 18:39:44 von Markus Wichmann

Axel Schwenke schrieb:
> [unwesentliches gekillt]
>=20
> Welches Tool statt dessen?
>=20
> Der mysql Kommandozeilenclient ist viel komfortabler, als mancher
> Vertreter der "alles muß klickbar sein" Fraktion glauben möchte.
> Man kann Ergebnisse in Files schreiben lassen (tee) oder SQL-Skripte
> einlesen und ausführen (source). Es gibt History, Tab-Completion
> und und und...
>=20
> Backup und Restore macht man natürlich über mysqldump/mysql.
>=20
>=20
> XL

OK, dann jetzt mal die Nachteile von mysql und mysqldump:
Unter Windows (davon muss ich jetzt einfach mal ausgehen, da mir andere
Systeme zum Testen fehlen) läuft mysql in der CMD. Die kann leider kein=

Unicode. Gut für Leute wie mich, die ab und an japanischen Text in eine=
r
Datenbank haben wollen. Oder russischen. Kann auch vorkommen. Unter
phpMyAdmin kann ich wenigstens den russischen und den japanischen
Tastaturtreiber nutzen. Das geht mit der CMD aber nicht.

Tab-Completion? Nicht unter Windows!

Und was gibt es noch? Online-Hilfe, Server-Status abfragen, das ist ja
sehr schön, braucht man aber nicht wirklich (oder willst du dauernd
wissen, welches charset jetzt von der Datenbank verwendet wird?)

Sollte ich mich wider erwarten geirrt haben, und die Tab-Completion ist
auch unter Windows zu haben, dann bitte ich um eine Antwort auf das "Wie?=
"
Tschö,
Markus

P.S.: Nein, ich gehöre nicht zur "alles muss klickbar sein"-Fraktion.
--=20
Menschen reden den ganzen Tag Unsinn. Sie gehen zum Kühlschrank, machen=

ihn auf und fragen: 'Wo ist die Butter?' Ja, wo wird sie sein? Im Kino?
-- Jürgen von der Lippe=

Re: phpMyAdmin

am 08.11.2006 19:58:29 von Axel Schwenke

Markus Wichmann wrote:
> Axel Schwenke schrieb:

[ Plädoyer für die MySQL-Kommandozeilentools ]

> OK, dann jetzt mal die Nachteile von mysql und mysqldump:
> Unter Windows (davon muss ich jetzt einfach mal ausgehen, da mir andere
> Systeme zum Testen fehlen) läuft mysql in der CMD. Die kann leider kein
> Unicode.

Ja, Windows ist kaputt. Da kann MySQL nix für.

> Tab-Completion? Nicht unter Windows!

Punkt für dich. Ich war davon ausgegangen, daß das was MySQL-internes
ist (kennt ja schließlich SQL-Schlüsselworte und SQL-Objekte). Jetzt
sehe ich aber gerade im Quellcode, daß das an libreadline delegiert
wird. Und die gibts nicht für (natives) Windows.


XL