Online Datenbank Backup erstellen (ohne PhpMyAdmin)
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anschreiben
backup
beispiel
date
datei
daten
einfache funktion
fuer tabelle
funktion
hierbei
info
inhalt
insert
null
rewind
show
speicher
status
tabellenstruktur
-
Um den Inhalt meiner Hompage bei Bedarf leicht wieder herstellen zu können, möchte ich eine Funktion implementieren, die es möglich macht, ein Backup einer Datenbank zu erstellen. Es Geht hierbei nicht ums speichern eines Backups, sondern um das Erzeugen des Texte. Gibt es eine einfache Funktion für MySQL um einen Text zu erhalten: wie zum Beispiel den, welchen man erhält, wenn man bei PhpMyAdmin auf 'Exportieren' klickt?
Ich hoffe ihr könnt mir helfen!
mfg Olaf -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich habe mal eine PHP-Datei erstellt, die das PHPMyAdmin_Backup nachahmt. Du brauchst du nur das Script auszuführen. Es wird dann eine .sql-Backup-Datei erstellt. Hier mal der Code:
<?php $count_tables = 0; $count_data = 0; $fp = @fopen("db_backup.sql","w"); @rewind($fp); // Verbindung herstellen und Datenbank auswaehlen $src = @mysql_connect($db_server, $db_nutzer, $db_passwort) or die ($die); $select = @mysql_select_db($db, $src); $info .= "--\n--\n-- Datenbank-Backup\n--\n--\n"; $info .= "-- Erstellungsdatum: " . date("d.m.Y - H:i"); $info .= "\n--\n-- Datenbank: $db \n--\n\n"; @fputs($fp,$info); $res = mysql_query("show table status"); while($table=mysql_fetch_array($res)) { $res1 = mysql_query("SHOW CREATE TABLE `".$table['Name']."`"); $tmp = mysql_fetch_array($res1); $s = ""; $s .= "--\n"; $s .= "-- Tabellenstruktur fuer Tabelle ".$table['Name']."\n"; $s .= "--\n\n"; $s .= $tmp["Create Table"] . " ;\n\n"; @fputs($fp,$s); $out = ""; $res2 = mysql_query("select * from `".$table['Name']."`"); for ($j=0;$j<$nr=mysql_num_rows($res2);$j++) { $count_data++; $out .= "("; $row2 = mysql_fetch_row($res2); for ($k=0;$k<$nf=mysql_num_fields($res2);$k++) { if (is_null($row2[$k])) $out .="null"; else $out .="'".mysql_escape_string($row2[$k])."'"; if ($k<($nf-1)) $out .=", "; } if ($j<($nr-1)) { $out .="),\n"; } else { $out .=");\n"; } } $i = ""; $i .= "--\n"; $i .= "-- Daten fuer Tabelle ".$table['Name']."\n"; $i .= "--\n\n"; if (mysql_num_rows($res2) != 0) { $i .= "insert into `".$table['Name']."` values\n"; } $i .= $out; $i .= "\n-- ---------------------------------------------------------------------------------\n\n"; $i = str_replace("\'", """, $i); @fputs($fp,$i); $count_tables++; } mysql_close(); @fclose($fp); ?>
Das Script ist schon ein wenig älter, sollte aber funktionieren. Bei Problemen einfach mich anschreiben.
MfG, Bohrty.
-
Ich hab dein SCript nun zwar nicht getestet bohrty, aber gibt es nicht auch eine Möglichkeit das phpmyadmin-backup-tool per Cronjob ausführen zu lassen ? :D
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage