Ich habe eine Funktion geschrieben, die einen Konsolenbefehl ausgibt um einen Dump aus einer MySQL-Datenbank zu erstellen.
Der wesentliche Code sieht so aus:
$conf enthält den Pfad (realpath) zur Datei "mysql.conf" in der sich die Anmeldedaten für MySQL befinden.
$dbpath enthält den Pfad zur SQL-Datei, die erstellt werden soll.
Bis gestern gab exec() in der Variablen $return "0" zurück (operation successfull). Heute erhalte ich immer eine "2", was laut dieser Liste "The system cannot find the file specified." bedeutet.
Was mich irritiert: der Dump wird am gewünschten Ort erstellt und enthält auch alle Daten, die er enthalten soll. Der Fehlercode kann sich also weder auf die Conf-Datei (ohne die würde die Datenbankverbindung ja nicht funktionieren), noch auf die SQL-Datei (die soll ja erstellt werden) beziehen. Ich erhalte also eine Fehlermeldung ohne Fehler.
Wieso?
Edit: Ich arbeite mit Windows 10 und WAMP
Der wesentliche Code sieht so aus:
PHP-Code:
$command = 'mysqldump --defaults-file="'.$conf.'" --events --routines --triggers '.$db.' > "'.$dbpath.'"';
exec($command, $out, $return);
return $return;
$dbpath enthält den Pfad zur SQL-Datei, die erstellt werden soll.
Bis gestern gab exec() in der Variablen $return "0" zurück (operation successfull). Heute erhalte ich immer eine "2", was laut dieser Liste "The system cannot find the file specified." bedeutet.
Was mich irritiert: der Dump wird am gewünschten Ort erstellt und enthält auch alle Daten, die er enthalten soll. Der Fehlercode kann sich also weder auf die Conf-Datei (ohne die würde die Datenbankverbindung ja nicht funktionieren), noch auf die SQL-Datei (die soll ja erstellt werden) beziehen. Ich erhalte also eine Fehlermeldung ohne Fehler.
Wieso?
Edit: Ich arbeite mit Windows 10 und WAMP
Kommentar