• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Datenbank SQL Export

Jokus

Neues Mitglied
Moin.
Ich möchte aus Sicherheit eine Tabelle erstellen in der eigendlich bereits gelöschte Daten in Form des SQLs die ihn wiederherstllen landen. D.h Ich hab meinet wegen in `Mitglieder` den Klaus und irgendein Idiot löscht ihn. Dann soll in der Sicherheits tabelle eine Spalte mit dem Query sein der ihn wieder erstellt, also INSERT INTO `Mitglieder` (`Name`) VALUES ('Klaus') .... Nu ist die Frage wie ich an den Query direkt komme.... Bei PHP My admin geht das ja recht flott mit Export als SQL gibts auch direkt nen MySQL befehl für???
 
leider nicht, dort wir eher von Export in Dateien berichtet, ich will nur den Export String :D

Edit: doch auf seite 6 habich was gefunden, danke!
Edit: Für interessierte, habe folgendes geschrieben:
Code:
function createsql($tabelle,$where){
   $inhalt_query = mysql_query("SELECT * FROM ".$tabelle." WHERE ".$where) or mysql_error(); 
   while($inhalt = mysql_fetch_row($inhalt_query)){
      $inhalte .= $neue_zeile."(";
      for($i = 0; $i < count($inhalt); $i++){
         $inhalte .= $komma."'".$inhalt[$i]."'";
         $komma = ",";
      }#end for
      $inhalte .= ")";  
      unset($komma); 
      $neue_zeile = ",";
   }#end while
   $spalten_query = mysql_query("SHOW COLUMNS FROM ".$tabelle);
   $spalte = "(";
   while($spalten = mysql_fetch_assoc($spalten_query)){
      $spalte .= $komma."`".$spalten['Field']."`";
      $komma = ",";   
   }#end while  
   $spalte .= ")";
   return "INSERT INTO ".$tabelle." ".$spalte." VALUES ".$inhalte;
}#end function
 
Zuletzt bearbeitet:
Eine andere Möglichkeit wäre, überhaupt keine Einträge zu löschen, sondern eine Spalte "deleted" oder so in die Tabelle einzufügen, die bei gelöschten Einträgen gesetzt wird. Das würde ich machen.

Wenn du in jedem Fall gelöschte Datensätze aus der Tabelle der aktiven Datensätze heraushaben möchtest, könntest du auch einfach die Tabelle als "users_deleted" o. ä. kopieren und den Datensatz als echten Datensatz dorthin verschieben. Das hätte den Vorteil, dass du Änderungen am Schema durchführen kannst (Spalten umbenennen oder entfernen), ohne die Funktionalität der INSERT-Queries zu zerstören.

In der Query, wie du sie hier erstellst, solltest du die Feldinhalte jedenfalls noch escapen.
 
Eine andere Möglichkeit wäre, überhaupt keine Einträge zu löschen, sondern eine Spalte "deleted" oder so in die Tabelle einzufügen, die bei gelöschten Einträgen gesetzt wird. Das würde ich machen.
Hi,

das klingt interessant. Ich brüte momentan auch über einer Möglichkeit, Datensätze, die gelöscht werden sollen, eben nicht wirklich zu löschen, sondern "nur so zu tun".

Wie sähe das dann aus? Datensatz noch da, aber nicht mehr sicht- bzw. selectbar? Welche Eigenschaften bräuchte die Spalte "deleted"? Und weches SQL-Statement führt dazu, dass für einen bestimmten Datensatz das betreffende Flag gesetzt wird?

Könntest Du mir da auf die Sprünge helfen?

Danke schonmal im Voraus
Thomas
 
Schon wieder Du! :-)
Wie man's macht, isses verkehrt. Hole ich den alten hoch, nun ja... Und eröffne ich 'nen neuen, heißt's, warum nutzt Du nicht die Suchfunktion?! Hmpf...
 
Zurück
Oben