[PHP/MYSQL] Datenbank Backup

CPU

Lieutenant
Registriert
Jan. 2006
Beiträge
704
Hallo,

nach langer Zeit mal wieder ein Problem, auf dass ich gestoßen bin!

Also ich möchte gerne ein PHP-Skript schrieben, dass beim Aufruf eigenständig von der gesamten Datenbank ein Backup erstellt. Als Vorbild sehe ich die PHPMyAdmin eingene Funktion zum "backuppen".

Zunächst habe ich mir überlegt, welche Funktionen ich benötige, und bin zu folgendem Schluss gekommen:
  • eine Funktion, die alle Tabellen einer Datebank ausließt -> siehe: mysql_list_tables ( $db_name );
  • eine Funktion, die die gesamte Datenbank Struktur ausgibt (Bsp.: CREATE TABLE ...) -> u.a. mysql_list_fields()siehe:
  • eine Funktion, die den Tabellen Inhalt ausgibt (Bsp.: INSERT INTO ...) -> ganz normaler Select Befehl

So hatte ich mir das schön zurecht gelegt und als ich realisieren wollte, traf ich dann auf Probleme:
1.) Zu 2.): Eigentlich bekomme ich alles ausgegeben, doch woher bekomme ich die Engine der Tabelle (MyIsam,InnoDb etc.)??

2.) General-Problem: Ich dachte mir, dass ich diese zwei Funktionen schreibe (2. und 3.) und sie dann durch eine Schleife jage, mit den Werten von 1.). und dies dann immer dynamisch einsetze. Beispiel:
PHP:
<?PHP
/* Datenbankserver - In der Regel die IP */
$db_server = 'localhost';

/* Datenbankname */
$db_name = 'selfphp';

/* Datenbankuser */
$db_user = 'root';

/* Datenbankpasswort */
$db_passwort = 'thunderbird';
         
/* Erstellt Connect zu Datenbank her */
$db = @ mysql_connect ( $db_server, $db_user, $db_passwort );

$result = mysql_list_tables ( $db_name, $db );

$menge = mysql_num_rows ( $result );

for ( $x = 0; $x < $menge; $x++ )
{
  $table_name = mysql_tablename ( $result, $x );
   echo "<br/><br/>";
   echo getTableStructure($table_name);
   echo "<br/><br/>";
   echo getTableContent($table_name);
}
?>

So hatte ich mir das gedacht, doch in der Praxis funktionierte es dann nicht. Es wurde nur die 1. Tabelle bearbeitet und ausgegeben!

Hat jemand eine Ahnung was man da machen kann?

CPU :freaky:
 
Zurück
Oben