Erzeuge MySQL-Daten-Dump in SQL von PHP

8

Ich schreibe ein PHP-Skript, um SQL-Dumps aus meiner Datenbank zu Versionskontrollzwecken zu generieren. Es gibt bereits die Datenstruktur aus, indem die entsprechende SHOW CREATE .... -Abfrage ausgeführt wird. Jetzt möchte ich Daten selbst ausgeben, aber ich bin unsicher über die beste Methode. Meine Anforderungen sind:

  • Ich brauche einen Datensatz pro Zeile
  • Zeilen müssen nach Primärschlüssel
  • sortiert sein
  • SQL muss gültig und genau sein, unabhängig vom Datentyp (Ganzzahlen, Strings, Binärdaten ...)
  • Dumps sollten identisch sein, wenn sich die Daten nicht geändert haben

Ich kann mysqldump als externen Befehl erkennen und ausführen, aber das fügt eine zusätzliche Systemanforderung hinzu und ich muss die Ausgabe analysieren, um Header und Fußzeilen mit Dump-Informationen zu entfernen, die ich nicht benötige (wie Serverversion oder Dump) Datum). Ich würde mein Skript so einfach wie möglich halten, damit es in einer eigenständigen Datei gespeichert werden kann.

Was sind meine Alternativen?

    
Álvaro González 28.04.2010, 10:45
quelle

3 Antworten

1

Ich denke, das mysqldump-Ausgabe-Parsing ist immer noch das einfachste. Ich denke, dass es wirklich wenige Metadaten gibt, die man ausschließen muss, und daher sollten diese nur ein paar Zeilen Code sein.

Sie können sich auch die folgenden mysqdump-Optionen ansehen: --tab, --compact

    
DSD 29.04.2010, 11:37
quelle
0

Konnte immer die system () Funktion ausprobieren. Hoffe, du bist in Linux:)

    
wesside 28.04.2010 20:54
quelle
0

"Wählen Sie * aus Tabellenname Reihenfolge nach Primärschlüssel" Sie können die Tabellennamen aus der Datenbank "information_schema" oder dem Befehl "show tables" abrufen. Kann auch den Primärschlüssel von "show indexes from tablename" erhalten und dann loop und create insert statements strings

    
NeuroScr 30.04.2010 11:46
quelle

Tags und Links