
17735
10.07.2006, aktualisiert am 23.08.2006
Datenbankexport per PHP-Datei
Hi,
ich möchte auf meiner Homepage Benutzern mit Administratorrechten die Möglichkeit geben, per Klick auf "Vollbackup" einen kompletten Export aus der MySQL-Datenbank (also alle Tabellen) vorzunehmen, der dann in einer *.sql-Datei gespeichert wird (oder an den Benutzer gesendet wird) und den Inhalt schon in der MySQL-Sprache enthält. Also gleiche Funktion wie bei PHPMyAdmin "Exportieren" der Datenbank.
Wie kann ich das am Geschicksten lösen, so dass der Code in der *.sql-Datei schon in der MySQL-Sprache verfasst ist?
Gruß,
Ahnenforscher
ich möchte auf meiner Homepage Benutzern mit Administratorrechten die Möglichkeit geben, per Klick auf "Vollbackup" einen kompletten Export aus der MySQL-Datenbank (also alle Tabellen) vorzunehmen, der dann in einer *.sql-Datei gespeichert wird (oder an den Benutzer gesendet wird) und den Inhalt schon in der MySQL-Sprache enthält. Also gleiche Funktion wie bei PHPMyAdmin "Exportieren" der Datenbank.
Wie kann ich das am Geschicksten lösen, so dass der Code in der *.sql-Datei schon in der MySQL-Sprache verfasst ist?
Gruß,
Ahnenforscher
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 35731
Url: https://administrator.de/forum/datenbankexport-per-php-datei-35731.html
Ausgedruckt am: 22.04.2025 um 08:04 Uhr
5 Kommentare
Neuester Kommentar
Hallo,
ich weiss nicht, was MySQL da alles unterstützt. Du solltest vielleicht mal in der Doku schauen, MSSQL bietet z.B. bestimmte SQL-Befehle für Massenim- und -export, kann sein das MySQL da ähnliches hat. Ansonsten bietet ja auch phpMyAdmin diese Funktionalität. Und da kannst du entweder direkt das verwenden, oder du schaust halt im Quelltext, wie es da gemacht wird (es leben OpenSource), dann kannst du das auch in eigene Anwendungen integrieren (bei direkter Kopie von Funktionen Lizenzbestimmungen beachten!).
Filipp
ich weiss nicht, was MySQL da alles unterstützt. Du solltest vielleicht mal in der Doku schauen, MSSQL bietet z.B. bestimmte SQL-Befehle für Massenim- und -export, kann sein das MySQL da ähnliches hat. Ansonsten bietet ja auch phpMyAdmin diese Funktionalität. Und da kannst du entweder direkt das verwenden, oder du schaust halt im Quelltext, wie es da gemacht wird (es leben OpenSource), dann kannst du das auch in eigene Anwendungen integrieren (bei direkter Kopie von Funktionen Lizenzbestimmungen beachten!).
Filipp
@17735
Hi,
im Homeverzeichnis des Benutzers muß ein Verzeichnis existieren mit Vollzugriff
für jeden.
Der Benutzer, der das Dump ausführt, muß in der MySQL-Datenbank ein Konto haben.
In der folg. PHP-Seite kann der Benutzer:
-seinen Namen
-sein Passwort
-die Datenbank
-den Pfad inclusive Dateinamen (z.B. /home/benutzername/dump/db.sql)
eingeben.
Es wird eine Datei erstellt mit allen Tabellendefinitionen und Insert's.
Ist jetzt nur mal ein grober Entwurf, eleganter ist es natürlich, die Daten
und Pfadangaben in einer Datenbank zu speichern und dort beim Ausführen
des Script's auszulesen.
Gruß
Günni
PS.: Getestet im Intranet!
Hi,
im Homeverzeichnis des Benutzers muß ein Verzeichnis existieren mit Vollzugriff
für jeden.
Der Benutzer, der das Dump ausführt, muß in der MySQL-Datenbank ein Konto haben.
In der folg. PHP-Seite kann der Benutzer:
-seinen Namen
-sein Passwort
-die Datenbank
-den Pfad inclusive Dateinamen (z.B. /home/benutzername/dump/db.sql)
eingeben.
<?
if($cmd){
exec("mysqldump -ac --user=$user --password=$pass $db > $dump");
}
?>
<html>
<head>
<title>MySQL-Dump</title>
</head>
<body>
<form action="dump.php">
Benutzer<input type="text" name="user">
Passwort<input type="password" name="pass">
Datenbank<input type="text" name="db">
Dumpfile<input type="text" name="dump">
<input type="submit" value="Sichern" name="cmd">
</form>
</body>
</html>
if($cmd){
exec("mysqldump -ac --user=$user --password=$pass $db > $dump");
}
?>
<html>
<head>
<title>MySQL-Dump</title>
</head>
<body>
<form action="dump.php">
Benutzer<input type="text" name="user">
Passwort<input type="password" name="pass">
Datenbank<input type="text" name="db">
Dumpfile<input type="text" name="dump">
<input type="submit" value="Sichern" name="cmd">
</form>
</body>
</html>
Es wird eine Datei erstellt mit allen Tabellendefinitionen und Insert's.
Ist jetzt nur mal ein grober Entwurf, eleganter ist es natürlich, die Daten
und Pfadangaben in einer Datenbank zu speichern und dort beim Ausführen
des Script's auszulesen.
Gruß
Günni
PS.: Getestet im Intranet!
@17735
Hi,
warum bei dir kein Dump erzeugt wurde, kann ich jetzt aus
der Ferne nicht sagen.
Es gibt aber noch 'ne andere Möglichkeit, ohne exec o.ä..
Systemkommandos, die zwischen mit Shift + `` Taste(neben Backspace) erzeugten
Zeichen stehen, werden vom PHP-Interpreter versucht, diese auch als solche auszuführen.
Folg. Code erzeugt im Browserfenster ein Dump der angegebenen Datenbank:
Eine Umleitung in eine Datei…
...funktioniert ebenfalls.
Und wie gesagt, das Zielverzeichnis MUSS von jedem beschreibbar sein
dürfen!
Grüße
Günni
Hi,
warum bei dir kein Dump erzeugt wurde, kann ich jetzt aus
der Ferne nicht sagen.
Es gibt aber noch 'ne andere Möglichkeit, ohne exec o.ä..
Systemkommandos, die zwischen mit Shift + `` Taste(neben Backspace) erzeugten
Zeichen stehen, werden vom PHP-Interpreter versucht, diese auch als solche auszuführen.
Folg. Code erzeugt im Browserfenster ein Dump der angegebenen Datenbank:
<?
$output = `mysqldump -ac --user=username --password=passwort datenbank`;
echo "<pre>$output</pre>";
?>
$output = `mysqldump -ac --user=username --password=passwort datenbank`;
echo "<pre>$output</pre>";
?>
Eine Umleitung in eine Datei…
... datenbank > /Pfad_zum_Dump/Dateiname`;
...funktioniert ebenfalls.
Und wie gesagt, das Zielverzeichnis MUSS von jedem beschreibbar sein
dürfen!
Grüße
Günni