Einleitung
Hallo liebe Breadfishler. Nach langer Zeit nun endlich mal wieder was von mir.
An dem Teil hier arbeite ich seit gestern.
Es ist eine Include, mit dem man seine MySQL-Datenbank ganz einfach aus dem Gamemode heraus exportieren kann.
Was ist das?
Wie gesagt: Mit dieser Include kann man Tabellen aus der MySQL-Datenbank ganz einfach exportieren.
Momentan ist das ganze noch in der BETA-Phase und nicht ganz so sicher. Man sollte sich nicht ausschließlich darauf verlassen, sondern sicherheitshalber noch manuell Backups anlegen.
Für das Backup muss das Script einige Zeichen ersetzen, finden und löschen. Diese Zeichen können jedoch auch variieren. Ich habe versucht alle Möglichkeiten einzubauen, jedoch glaube ich nicht, dass ich das wirklich geschafft habe. Sollte das Script also irgendwann mal etwas total sinnloses auswerfen, dann meldet dies bitte hier.
Funktionen
Hauptfunktionen:
[table=2]
[*]Funktion
[*]Beschreibung
[*]MyDump:MyDumpExportInit(host[], user[], pw[], db[])
[*]Initialisiert eine MySQL-Verbindung mit den angegeben Daten und erstellt gleichzeitig ein MyDump-Handle
[*]MyDumpExportExit(MyDump:handle)
[*]Schließt die MyDump-Verbindung
[*]ExportTablesToFile(file[], MyDump:handle, IfNotExists = 1)
[*]Exportiert die Tabellen der in dem Handle geöffneten Datenbank in die angegebene Datei. Ist der 3. Parameter 1 wird der IF NOT EXISTS-Zusatz hinzugefügt.
[*]SetAutoExportTime(sec, MyDump:handle)
[*]Setzt die Timerzeit für Auto-Export. Erst gültig, wenn der Auto-Export des Handles neugestartet wird.
[*]SetAutoExportIfNotExists(num, MyDump:handle)
[*]Wenn num = 1: Beim Auto-Export des Handles wird der IF NOT EXISTS-Zusatz verwendet. Falls 0, nicht. Sofort wirksam.
[*]AutoExportTimerStart(MyDump:handle)
[*]Startet den Auto-Export-Timer für das besagte Handle
[*]AutoExportTimerStop(MyDump:handle)
[*]Stoppt den Timer wieder
[/table]
Nebenfunktionen:
Die Nebenfunktionen existieren zwar, sind für den normalen Gebrauch aber relativ unnötig.
[table=2]
[*]Funktion
[*]Beschreibung
[*]ExportTable(data_table[], MyDump:handle)
[*]Gibt einen String mit dem CREATE TABLE-Inhalt der besagten Tabelle zurück
[*]ExportContents(table[], File:fhandle, MyDump:handle)
[*]Schreibt den Inhalt der angegebenen Tabelle (nicht Struktur!) in die angegebene Datei (Datei muss existieren)
[*]SaveTables(MyDump:handle)
[*]Lädt Liste mit den Tabellen der Datenbank in das Array MyDump_Table[MAX_TABLES];
[/table]
Optimale Verwendung
Um die Verwendung besser zu erklären, habe ich ein Beispiel-Filterscript geschrieben. Link ist beim Downloadlink.
Sachen, die noch zu beachten wären
- Bevor MyDump.inc inkludiert wird, muss mysql.inc inkludiert werden.
- MAX_TABLES ist standartmäßig auf 100. Indem man es VOR dem inkludieren anders definiert, lässt es sich einfach ändern
- Es ist nicht zu 100% stabil. Also bitte nicht ausschließlich darauf verlassen.
Downloads
Beispielscript - Pastebin
Include v1.1 - Pastebin
Include v1.0 - Pastebin