PHP-Code:
<?php
// Script Konfiguration
$db_host = "localhost"; // Hostname
$db_user = "user"; // DB User
$db_pw = "pass"; // Passwort
$db_name = "db"; // Datenbank-Name
define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', 'user');
define('MYSQL_PASS', 'pass');
define('MYSQL_DATABASE', 'db');
error_reporting(E_ALL);
mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR
die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
mysql_select_db(MYSQL_DATABASE) OR
die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());
$path = "dump/";
// -----------------------------------------------------
// Don't change the lines below:
if (!is_dir($path)) { mkdir($path, 0777); }
echo "<b>Datenbank Dump</b><br><br><br>";
echo "Servername: '".$db_host."'<br>";
echo "Betriebssystem: ".php_uname()."<br>";
echo "MySQL-Version: ".mysql_get_server_info()."<br>";
echo "PHP - Version: ".phpversion()."<br><br>";
echo "<table border=\"1\">";
echo "<tr><td>DB Name</td><td>Anzahl Tabellen</td><td>Größe</td></tr>";
echo "<tr><td>$db_name</td>";
$database = $db_name;
$zaehler = 0;
$file_name = $path.$database."_".date("Y-m-d_H-i").".sql";
$text = "# --------------------------------------------------------\r\n";
$text .= "# DATENBANK DUMP\r\n";
$text .= "# Host: ".$db_host."\r\n";
$text .= "# Erstellungszeit: ".date("d. F Y")." um ".date("H:i")."\r\n";
$text .= "# Server Betriebssystem: ".php_uname()."\r\n";
$text .= "# MySQL-Version: ".mysql_get_server_info()."\r\n";
$text .= "# PHP-Version: ".phpversion()."\r\n";
$text .= "# Datenbank: `$database`\r\n";
$text .= "# --------------------------------------------------------\r\n\r\n";
$fd = fopen($file_name,"a+");
fwrite($fd, $text);
fclose($fd);
// Alle Datenbanken auf dem Server suchen
$c = 0;
$result2 = @mysql_list_tables($database);
// Tabellenname Array auslesen und aufbauen
for ($i = 0; $i < @mysql_num_rows($result2); $i++)
{
$tabelle = @mysql_tablename($result2,$i);
if ($tabelle != "") {
$tbl_array[$c] = @mysql_tablename($result2,$i);
$c++;
$zaehler++;
}
}
echo "<td align=\"right\">".$zaehler."</td>";
// Start Ausgabe und Berechnung
for ($y = 0; $y < $c; $y++) {
$tabelle = $tbl_array[$y];
// Struktur der Tabelle einlesen
$def='';
$index=array();
$def .= "DROP TABLE IF EXISTS $tabelle;\r\n";
$def .= "CREATE TABLE $tabelle (\r\n";
$result3 = @mysql_db_query($database, "SHOW FIELDS FROM $tabelle");
while ($row = @mysql_fetch_array($result3)) {
$def .= " ".$row["Field"]." ".$row["Type"];
if ($row["Default"] != "") { $def .= " DEFAULT '".$row["Default"]."'"; }
if ($row["Null"] != "YES") { $def .= " NOT NULL"; }
if ($row["Extra"] != "") { $def .= " ".$row["Extra"]; }
$def .= ",\r\n";
}
$def = ereg_replace(",\r\n$", "", $def);
$result3 = @mysql_db_query($database, "SHOW KEYS FROM $tabelle");
while ($row = @mysql_fetch_array($result3)) {
$kname = $row["Key_name"];
if (($kname != "PRIMARY") && ($row["Non_unique"] == 0)) { $kname = "UNIQUE|".$kname; }
if (!isset($index[$kname])) { $index[$kname] = array(); }
$index[$kname][] = $row["Column_name"];
}
while (list($xy, $columns) = each($index)) {
$def .= ",\r\n";
if ($xy == "PRIMARY") $def .= " PRIMARY KEY (".implode($columns, ", ").")";
else if (substr($xy,0,6) == "UNIQUE") $def .= " UNIQUE ".substr($xy,7)." (".implode($columns, ", ").")";
else $def .= " KEY $xy (".implode($columns, ", ").")";
}
$def .= "\r\n);\r\n\r\n";
// Ende Struktur Modul
$db = @mysql_select_db($database);
$tabelle = "".$tabelle;
$text = "#\r\n# Daten für Tabelle `$tabelle`\r\n#\r\n\r\n";
$fd = fopen($file_name,"a+");
fwrite($fd, $text.$def);
fclose($fd);
unset($data);
if ($tabelle > "") {
$ergebnis[] = @mysql_select_db($database);
$result = @mysql_query("SELECT * FROM $tabelle");
$anzahl = @mysql_num_rows($result);
$spaltenzahl = @mysql_num_fields($result);
for ($i = 0; $i < $anzahl; $i++) {
$zeile = @mysql_fetch_array($result);
$data .= "INSERT INTO $tabelle (";
for ($spalte = 0; $spalte < $spaltenzahl; $spalte++) {
$feldname = @mysql_field_name($result, $spalte);
if ($spalte == ($spaltenzahl - 1)) {
$data.= $feldname;
} else {
$data.= $feldname.",";
}
}
$data .= ") VALUES (";
for ($k=0;$k < $spaltenzahl;$k++) {
if ($k == ($spaltenzahl - 1)) {
$data .= "'".addslashes($zeile[$k])."'";
} else {
$data .= "'".addslashes($zeile[$k])."',";
}
}
$data .= ");\r\n";
}
$data .= "\r\n";
} else {
$ergebnis[] = "Keine Tabelle übergeben";
}
$fd = fopen($file_name,"a+");
fwrite($fd, $data);
fclose($fd);
}
$groesse = filesize($file_name) / 1024;
echo "<td align=\"right\">".number_format($groesse,2)." KB</td></tr>";
echo "</table><br>";
echo "Das DB - Backup wurde erfolgreich durchgeführt.<BR>Die Dateien befinden sich im Verzeichniss /".$path."<BR>";
?>
ich verwende das oben genannte php Script für die Sicherung meiner DB, soweit schein auch alles in ordnung zu sein mit den Backups trotzdem its irgend wo ein Fehler versteckt. Denn wenn ich das Script auf meinem Server abrufe. wir alles Korrekt angezeigt und ausgeführ aber folgener "Fehler" wird ausgegen:
Notice: Undefined variable: data in /home/worldgam/public_html/japan/mysql.php on line 107
Notice: Undefined variable: data in /home/worldgam/public_html/japan/mysql.php on line 107
Notice: Undefined variable: data in /home/worldgam/public_html/japan/mysql.php on line 107
Notice: Undefined variable: data in /home/worldgam/public_html/japan/mysql.php on line 107
Notice: Undefined variable: data in /home/worldgam/public_html/japan/mysql.php on line 107
Notice: Undefined variable: data in /home/worldgam/public_html/japan/mysql.php on line 126
Notice: Undefined variable: data in /home/worldgam/public_html/japan/mysql.php on line 107
Notice: Undefined variable: data in /home/worldgam/public_html/japan/mysql.php on line 126
Notice: Undefined variable: data in /home/worldgam/public_html/japan/mysql.php on line 107
Ich verwende einen FreeBSD Server und einen Debian(Linux) mit Php 5.0.1
Wäre toll wenn mir wer helfen kann. Danke schon mal
gruss LukasS
Kommentar