Tom: MySQL-table in datei speichern

Beitrag lesen

Hello,

das wird dann wahrscheinlich nur über die bereitgestellte API gehen, also PERL oder PHP. Der MySQL-Daemon wird ja keine Schreibrechte auf Deine Userverzeichnisse auf dem Server besitzen. Also scheiden die MySQL-eigenen Dump-methoden aus.

Du kannst dir z.B. mit PHP die Tabellen in ein File schreiben lassen, dass dann folgenden Aufbau hat:

Create-Statement

Insert-Statements

INSERT INTO TEST VALUES("90", NULL, "20031212172547", "00000000000000", "88", "20", "1001,2002,3003", "1", NULL, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", NULL, "Jan,Apr,Jul,Okt", "20031031075227", NULL, "0.00", "00:00:00", NULL, NULL);

Das Create-Statement bekommst Du mit "show create table tablename;"
Und die Insert-Statements, indem Du ganz normal

"insert into tablename values($satz);"
Zeile für Zeile schreibst. Das einzige Problem dabei sind nur die NULL-Felder.

wenn Du mit

$_rec = mysql_fetch_row($res)

die Daten aus dem Resultset geholt hast, dann kannst Du leider nicht einfach

$satz = """.implode("","",$_rec).""";

schreiben, sondern musst das mit einer Schleife zusammenbauen, da NULL nicht in Häkchen stehen darf, alle anderen Werte aber schon.

$satz ="";
foreach($_rec as $feld)
{
  if(is_null($feld))
  {
    $satz .= "NULL,";
  }
  else
  {
    $satz .= ""$feld",";
  }
}

$satz = "insert into $table values(".substr($satz,0,-1).");";

Das schreibst Du dann in die Datei weg.

Die brauchst Du dann nachher nur Zeile für Zeile als SQL-Statement auf dem anderen Server ausführen zu lassen.

Liebe Grüße aus http://www.braunschweig.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen