dedlfix: mySQL - Dump - Zeichenkodierung und Dump über PHP system()

Beitrag lesen

Hi!

Ich habe jetzt im TotalCommander nochmal nachgeschaut und die Option UTF-8 gefunden. Jetzt klappt es auch mit den Umlauten. (Vorher hatte ich im Notepad schon probiert, als UTF-8 zu speichern, das hat aber nichts gebracht).
Das heißt also, dass die Darstellungsprobleme wirklich nur an meinem Computer lagen nehme ich an?

Darstellungsprobleme bekommst du immer, wenn quasi der Schlüssel nicht zum kodierten Text passt. Die falsche Darstellung ist nur ein Folgefehler aufgrund nicht richtigen Dekodierens.

Alles was du mit mysqldump hinbekommen kannst, steht in seiner Dokumentation. Hast du da mal nachgeschaut?
Das habe ich schon vorher gelesen. Das einzige, was erfolgversprechend geklungen hat, war --result-file. Hat aber nichts geändert.

Ich hab auch nichts gefunden.

Kommt sicher false raus oder ist nur die letzte Zeile der Ausgabe eine Leerzeile, die auch als false erkannt wird? Ein typsicherer Vergleich mit === oder !== räumt Zweideutigkeiten aus dem Weg.
Das verstehe ich leider nicht.

Type comparison tables. Wenn Datentypen in einen boolschen Kontext gebracht werden, so werden einige Werte als false und der Rest als true gewertet. Ein Leerstring wäre false.

"" == false

Wenn man aber die Datentypen berücksichtigt, dass wird hier ein String mit einem Boolean vergleichen. Bei einem typsicheren Vergleich ist "" nicht mehr false

"" !== false

Wenn also system() einen Leerstring liefert, dann wird der als false gewertet, wenn nicht typsicher verglichen wird.

Wenn ich var_dump(system("mysqldump...")) mache bekomme ich string(0) ""
Bei var_dump() vom Output von system bekomme ich int(0)

0 wäre auch false. Fehler werden in der Regel mit Werten ungleich 0 signalisiert.

"" und 0 sind also beide == false aber !== false.

Lo!