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

Beitrag lesen

Hi,

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.

So werde ich das dann machen. Das ist aber dann wohl nur der erste Schritt, also ob überhaupt etwas ausgeführt wurde, oder?

Als nächstes habe ich mir gedacht, dass ich in der .sql Datei nach "-- Dump completed on" suchen kann. Das kommt ja glaube ich wirklich nur, wenn es geklappt hat.

Wenn ich dann kein "-- Dump completed on" in der Datei finde, soll das System mir eine Fehlermeldung Mailen...

Achja nochwas:
ICh habe mal die -hex-blob Option ausprobiert. Jetzt sehen die Einträge in den BLOBS so aus wie bei dem Dump aus phpMyAdmin und die Umlaute sehen jetzt auch richtig aus. Wahrscheinlich sit diese Option wegen den PDFs in der BLOB spalte auch besser, oder?
Aber funktioniert hat das Restore auch vorher...

Gruß
Alex