So, hab was gebastelt, damit müsstest auch Du klar kommen.
Dein Backup-Script (zur freien Verwendung).
Kern ist die Funktion backup. Dort gibst Du den Namen der Datenbank und den Namen der Tabelle an. (Natürlich für jede Tabelle einmal auszuführen.)
Erzeugt wird ein ASCII-Text, den Du als backup.sql oder sonstwie sichern kannst. Diesen kannst Du später wieder über mysqladmin einspielen.
backup("shop2","language"); erzeugt z.B. ein Backup der Tabelle "language" in der Datenbank "shop2" und gibt es aus.
Code:
<?PHP
include("../../dbinit.php");
function backup($datenbank,$tabelle)
{
echo "# Datum der Sicherung: ".date("d.m.Y, H:i:s")." Uhr\n\n";
echo "USE ".$datenbank.";\n\n";
echo "DROP TABLE IF EXISTS ".$tabelle.";\n\n";
$result = mysql_query("SHOW CREATE TABLE `$tabelle`") or die ('Fehler: '.mysql_error());
WHILE ($row = mysql_fetch_array($result))
{
for ($i=1;$i<count($row)-1;$i++) { echo $row[$i]; }
}
echo ";\n\n";
$result = mysql_query("SELECT * FROM `$tabelle`") or die ('Fehler: '.mysql_error());
WHILE ($row = mysql_fetch_array($result))
{
$val = "";
echo "INSERT INTO ".$tabelle." VALUES(";
for ($i=0;$i<count($row);$i++) { $val .= "'".$row[$i]."',"; }
$val = substr($val,0,strlen($val)-1); // letztes Komma verwerfen (abschneiden)
echo $val.");\n";
}
}
backup("shop2","help");
?>
Dess woars
Edit: Hier noch die db_init.php...
Code:
<?php
### db_init.php ###
$database = "shop2";
$sqlhost = "localhost";
$sqluser = "root";
$sqlpass = "";
mysql_connect ( $sqlhost, $sqluser, $sqlpass) or die ("Datenbankserver: Aufruf fehlgeschlagen!");
mysql_select_db($database) or die ("Datenbank: Aufruf fehlgeschlagen!");
?>
Edit2: So sieht das Ergebnis aus:
Code:
# Datum der Sicherung: 18.10.2004, 00:44:03 Uhr
USE shop2;
DROP TABLE IF EXISTS help;
CREATE TABLE `help` (
`lfdnr` int(5) unsigned NOT NULL auto_increment,
`keyword` varchar(32) NOT NULL default '',
`de` varchar(128) NOT NULL default '',
`deval` varchar(255) NOT NULL default '',
`en` varchar(128) NOT NULL default '',
`enval` varchar(255) NOT NULL default '',
`us` varchar(128) default NULL,
`usval` varchar(255) NOT NULL default '',
`fr` varchar(128) NOT NULL default '',
`frval` varchar(255) NOT NULL default '',
`it` varchar(128) NOT NULL default '',
`itval` varchar(255) NOT NULL default '',
PRIMARY KEY (`lfdnr`),
UNIQUE KEY `lfdnr` (`lfdnr`)
) TYPE=MyISAM COMMENT='Hilfe';
INSERT INTO help VALUES('1','delivery','Versand','Erklärung Versandlink','delivery','Erklärung Versandlink in english','','','','','','','','','','','','','','','','','','');
... weitere INSERT INTOs erspare ich mir und euch.