dump.txt per php

alesch

Mitglied
hallo,
ich bin immernoch auf der suche nach na lösung meines problems. ich will eine tabelle aus meiner db in ne txt datei speichern (struktur und daten). so wie in phpMyAdmin. Wie mache ich das denn? DB Struktur auslesen und dann die Daten in die txt schreiben.

Ist mir klar, aber wie? :-)
 
Ok gut, du hast es zumindest versucht :)

Also die Struktur ist ganz einfach zu kriegen:
PHP:
$result = mysql_query("SHOW CREATE TABLE tabelle");
$row = mysql_fetch_row($result);
$struct = $row[1];

Und der Rest... na ja, sieh's dir selber an, hab mal schnell ein bisschen was zusammengeschrieben:
PHP:
$table = "tabelle";

$result = mysql_query("SHOW CREATE TABLE ".$table);
$row = mysql_fetch_row($result);
$struct = $row[1].";";

$result = mysql_query("SELECT * FROM ".$table);
$fields_cnt  = mysql_num_fields($result);
$data = "INSERT INTO ".$table." (";
for ($i=0; $i<$fields_cnt; $i++) {
	$fields[] = mysql_field_name($result, $i);
}
$data .= implode(", ", $fields).") VALUES\n";
while ($row = mysql_fetch_row($result)) {
	$rows[] = "('".implode("', '", $row)."')";
}
$data .= implode(",\n", $rows).";";

$dump = "# Dump von ".$table."\n# Zeit: ".gmdate("D, d M Y H:i:s \G\M\T", time())."\n\n".$struct."\n\n".$data;
$dump musst du dann nur noch in eine Textdatei schreiben... keine Garantie auf Fehlerfreiheit :)
 
hier die Funktion die ich mir mit reimas hilfe gebaut habe. bei aufrufen der funktion wir eine txt (tabelle-datum-uhrzeit.sql) mit dem dump in dem im root liegende verzeichnis db_backup erstellt. Wenn es von eurer Seite noch irgendwas zu sagen gibt, immer gerne. Und Danke an Reima :-)

PHP:
function backup($table)
{
$savedir  = $_SERVER['DOCUMENT_ROOT']."/db_backup";
$filename = $savedir."/".$table."-";
$filename.= date("d_m_y-H_i");
$filename.= ".sql";

$result = mysql_query("SHOW CREATE TABLE ".$table);
$row = mysql_fetch_row($result);
$struct = $row[1].";";

$result = mysql_query("SELECT * FROM ".$table);
$fields_cnt  = mysql_num_fields($result);
$data = "INSERT INTO ".$table." (";
for ($i=0; $i<$fields_cnt; $i++) {
    $fields[] = mysql_field_name($result, $i);
}
$data .= implode(", ", $fields).") VALUES\n";
while ($row = mysql_fetch_row($result)) {
    $rows[] = "('".implode("', '", $row)."')";
}
$data .= implode(",\n", $rows).";";

$dump = "# Dump von ".$table."\n# Zeit: ".gmdate("D, d M Y H:i:s GMT", time())."\n\n".$struct."\n\n".$data;

$fopen  = fopen($filename, "w");
fputs($fopen, $dump);
fclose($fopen);
}
 
so dann wollen wior das alte thema mal wieder aufassen :)

jetzt habe ich also eine txt datei mit meiner Tabelle und wie mach ich jetzt aus der txt wieder eine tabelle?
Also mich würde nur das Prinzip interessieren kein quellcode!!

***
 
Zurück