kostenloser Webspace werbefrei: lima-city


MySQL Datenbank via PHP exportieren

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    hofer

    hofer hat kostenlosen Webspace.

    Hallo

    Ich suche ein ganz einfaches PHP Script mit dem ich meine MySQL Datenbank exportieren kann. (komplette Datenbank)

    Es gibt zwar verschiedene tools, diese sind mir aber alle zu umfangreich.

    F?r eine schnelle Hilfe w?re ich sehr dankbar.


    MFG
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Autor dieses Themas

    hofer

    hofer hat kostenlosen Webspace.

    Hat keiner eine L?sung?

    Beitrag ge?ndert am 28.07.2005 10:50 von hofer
  4. Hiho hofer!

    Das ist nicht ganz so einfach. Ich habe noch nicht nach fertigen Scripts gegoogelt. Mal sehen, ob ich sp?ter noch was finde. Jetzt erstmal meine theoretische L?sung:

    1. Du musst eine Liste s?mtlicher Tabellen in der Datenbank erstellen. Das geht IMHO mit dem mySQL-Befehl "SHOW TABLES FROM DATABASE".

    2. Diese Liste klapperst du dann Tabelle f?r Tabelle ab. F?r jede Tabelle musst du eine Tabellenbeschreibung erstellen. MySQL hat daf?r den Befehl "SHOW CREATE TABLE" (http://dev.mysql.com/doc/mysql/de/show-create-table.html). Der erzeugt laut Online-Doku einen String, der sich sp?ter prima in einen "CREATE TABLE"-Befehl umwandeln l?sst.

    3. Mit "SHOW * FROM tabelle" holst du dir alle Eintr?ge der jeweiligen Tabelle. Die kannst du theoretisch in irgendwas Speicherbares umwandeln, z.B. eine CSV-Datei.

    So stelle ich mir das jedenfalls vor. Es gibt auch CSV-Exportfunktionen in der Datenbank-Schnittstelle adodb. Dort wird auch beschrieben, wie man Tabellen in CSV-Dateien exportiert.

    MfG
    alopex
  5. c*********c

    Mit diesem Script sollte das funktionieren!

    Damit das Script richtig l?uft, musst Du einen Ordner namens "backup" erstellen!

    Die Daten werden in .txt-Files abgespeichert; das Format sieht wie folgt aus:

    bla | muh | m?????ep

    Dabei steht das "|" f?r einen Spaltentrenner!

    error_reporting(E_ALL);
    
    include("connect.inc.php");
    
    $db = "DeineDatenbank";
    $result = mysql_list_tables($db);
    
    $counter = 0;
    $tables = array();
    while($row = mysql_fetch_array($result))
    {
    print("Tabelle: ". $row[0] ."<br />");
    $tables[] = $row[0];
    $counter++;
    }
    
    print("<br /><br />");
    print_r($tables);
    print("<br /><br />");
    
    for($i = 0; $i <= $counter; $i++)
    {
    // ------------------------------------
    $sql = "SELECT * FROM ". $tables[$i];
    $result = mysql_query($sql);
    // ------------------------------------
    
    if($result === FALSE)
    {
    print("Fehler: Die Datenbankabfrage schlug fehl!<br />Mysql-Error: ". mysql_error() ."<br />Mysql-Error-Number: ". mysql_errno() ."
    <br /><br />");
    }
    else
    {
    // ------------------------------------
    $datum = date("m-d-Y-H:i:s");
    $pfad = "backup/". $datum ."-". $tables[$i] ."-". $db .".txt";
    // ------------------------------------
    
    $handle = fopen($pfad, "w");
    
    while($row = mysql_fetch_assoc($result))
    {
    /* print_r($row);
    pritn("<br /><br />"); */
    $str = implode(" | ", $row);
    $str .= "\r\n";
    fwrite($handle, $str);
    }
    fclose($handle);
    }
    
    }




  6. Autor dieses Themas

    hofer

    hofer hat kostenlosen Webspace.

    @compactdisc

    dein script funktioniert super, aber ich m?chte eine sql datei exportieren, mit den sql befehlen, sowie man das auch mit PHPMyAdmin machen kann, nur das ganze soll halt via PHP funktionieren.
  7. c*********c

    Ich hab's, ich hab's !

    Mit folgendem Code kann man seine gesamten Daten in einer Datenbank in Textdateien speichern.

    Format:

    Datei: [Monat]-[Tag]-[Jahr]-[Stunde]-[Minuten]-[Sekunden]-[Tabellenname]-[Datenbankname].txt

    Inhalt:
    INSERT INTO <tabelle> (Spalten) VALUES (Werte)


    error_reporting(E_ALL);
    
    include("connect.inc.php");
    
    $db = "DeineDatenbank";
    $result = mysql_list_tables($db);
    
    $counter = 0;
    $tables = array();
    while($row = mysql_fetch_array($result))
    {
    print("Tabelle: ". $row[0] ."<br />");
    $tables[] = $row[0];
    $counter++;
    }
    
    print("<br /><br />");
    print_r($tables);
    print("<br /><br />");
    
    for($i = 0; $i < $counter; $i++)
    {
    // ------------------------------------
    $sql = "SELECT * FROM ". $tables[$i];
    $result = mysql_query($sql);
    // ------------------------------------
    
    if($result === FALSE)
    {
    print("Fehler: Die Datenbankabfrage schlug fehl!<br />Mysql-Error: ". mysql_error() ."<br />Mysql-Error-Number: ". mysql_errno() ."
    <br /><br />");
    }
    else
    {
    
    // ------------------------------------
    $datum = date("m-d-Y-H:i:s");
    $pfad = "backup/". $datum ."-". $tables[$i] ."-". $db .".txt";
    // ------------------------------------
    
    $handle = fopen($pfad, "w");
    
    
    
    while($row = mysql_fetch_assoc($result))
    {
    $werte = array();
    $spalte = array();
    foreach($row as $key => $val)
    {
    $werte[] = "'". $val ."'";
    $spalte[] = $key;
    }
    
    // print_r($werte);
    // print("<br /><br />");
    
    $values = implode(", ", $werte);
    $column = implode(", ", $spalte);
    
    // print($values);
    // print("<br /><br />");
    
    
    $str = "INSERT INTO ". $tables[$i] ." (". $column .") VALUES (". $values .")\r\n"; 
    fwrite($handle, $str);
    
    
    
    }
    
    fclose($handle);
    }
    
    }
  8. Autor dieses Themas

    hofer

    hofer hat kostenlosen Webspace.

    das ist ja super, ist es auch m?glich die Struktur zu exportieren. Wenn ja, wie m?sste das script dann aussehen?

    zb

    CREATE TABLE `bw_homepage` (
    `id` int(50) NOT NULL auto_increment,
    `anzeigen` varchar(50) NOT NULL default '',
    `name` varchar(200) NOT NULL default '',
    `datei` varchar(200) NOT NULL default '',
    `bild` varchar(200) NOT NULL default '',
    `sidebar` varchar(50) NOT NULL default '',
    PRIMARY KEY (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=17 ;
  9. c*********c

    Ich habe das auch mal versucht zu schreiben, allerdings wird der Typ der Spalte immer mit Blob beschrieben, kA, woran das liegt ...

    Hier mal das Script:

    error_reporting(E_ALL);
    
    include("connect.inc.php");
    
    // -------------------
    $db = "DeineDatenbank";
    mysql_select_db($db);
    // -------------------
    
    $result = mysql_list_tables($db);
    
    $counter = 0;
    $tables = array();
    while($row = mysql_fetch_array($result))
    {
    print("Tabelle: ". $row[0] ."<br />");
    $tables[] = $row[0];
    $counter++;
    }
    
    print("<br /><br />");
    print_r($tables);
    print("<br /><br />");
    
    for($i = 0; $i < $counter; $i++)
    {
    // ------------------------------------
    $sql = "SELECT * FROM ". $tables[$i];
    $result = mysql_query($sql);
    // ------------------------------------
    
    if($result === FALSE)
    {
    print("Fehler: Die Datenbankabfrage schlug fehl!<br />Mysql-Error: ". mysql_error() ."<br />Mysql-Error-Number: ". mysql_errno() ."
    <br /><br />");
    }
    else
    {
    
    // -------------------
    $primary = array();
    $unique = array();
    $multiple = array();
    // -------------------
    
    $create = "CREATE TABLE `". $tables[$i] ."` (\r\n";
    
    for($b=0; $b < mysql_num_fields($result); $b++)
    {
    
    $meta = mysql_fetch_field($result, $b);
    
    if(!$meta)
    {
    print("Keine Meta-Daten vorhanden ...<br />");
    }
    
    // -------------------
    if($meta->name)
    {
    $create .= "`". $meta->name ."` ";
    }
    
    if($meta->type && $meta->max_length)
    {
    $create .= $meta->type ."(". $meta->max_length .") ";
    }
    else
    {
    
    if($meta->type && !$meta->max_length)
    {
    $create .= $meta->type ." ";
    }
    else
    {
    
    if($meta->type == TRUE)
    {
    $create .= $meta->type ." ";
    }
    
    if($meta->blob == 1)
    {
    $create .= "blob ";
    }
    
    }
    }
    
    
    if($meta->unsigned)
    {
    $create .= "unsigned ";
    }
    
    if($meta->zerofill)
    {
    $create .= "UNSIGNED ZEROFILL ";
    }
    
    if($meta->not_null)
    {
    $create .= "NOT NULL ";
    }
    
    if($meta->primary_key == 1)
    {
    $primary[] = $meta->name;
    }
    
    if($meta->unique_key == 1)
    {
    $unique[] = $meta->name;
    }
    
    if($meta->multiple_key == 1)
    {
    $multiple[] = $meta->name;
    }
    
    $create .= ",\r\n";
    $create .= "<br />";
    }
    
    $temp = array();
    if(count($primary) > 0)
    {
    foreach($primary as $element)
    {
    $temp[] = "`". $element ."`";
    }
    $prim = implode(", ", $temp);
    $create .= "PRIMARY KEY  (". $prim .")";
    $create .= "\r\n";
    }
    
    
    if(count($unique) > 0)
    {
    foreach($unique as $element)
    {
    $temp[] = "`". $element ."`";
    }
    $uniq = implode(", ", $temp);
    $create .= "UNIQUE KEY ". $uniq ." (". $uniq .")";
    $create .= "\r\n";
    }
    }
    print($create ."<br /><br />");
    }


    Beitrag ge?ndert am 29.07.2005 10:40 von compactdisc
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!